Summary

The Excel DAY function returns the day of the month as a number between 1 and 31 from a given date. DAY is commonly combined with the YEAR function and MONTH function to take apart dates for manipulation, and with the DATE function to reassemble dates after making changes.

Purpose 

Get the day of month from a date

Return value 

The day of month as a number between 1-31

Syntax

=DAY(date)
  • date - A valid Excel date.

Using the DAY function 

The DAY function extracts the day component from any valid Excel date. For example, DAY returns 15 from the date January 15, 2024. This is useful when you need to work with the day of a date separately, for calculations, comparisons, or building new dates.

The DAY function returns a number. If you need a day's name, use the TEXT function as shown below.

Note: The DAYS function has a similar name but serves a different purpose: it calculates the number of days between two dates.

Key features

  • Returns a number between 1 and 31
  • Works with any valid Excel date
  • Often combined with YEAR, MONTH, and DATE for date manipulation
  • Returns a number, not text
  • Can extract day from dates entered as text (but this is not recommended)

Table of contents

Basic usage

The DAY function requires just one argument, a valid Excel date. When given a valid date, it returns the day of the month:

=DAY("15-Jan-2024") // returns 15
=DAY(TODAY()) // returns today's day number
=DAY(A1) // returns day from date in A1
=DAY("7-Aug-2025") // returns 7
=DAY("31-Dec-2024") // returns 31

Using text strings for dates (like "1/15/2024") can cause problems due to regional date format differences. A better approach is to create the date with the DATE function or to refer to a cell that already contains a valid date.

A common pattern is to use DAY together with YEAR, MONTH, and DATE to modify dates. For example, to change only the year of a date while keeping the month and day the same, you can "take apart" the date with YEAR, MONTH, and DAY, then reassemble it with DATE:

=DATE(2025,MONTH(A1),DAY(A1))

This returns a new date with the year 2025, but the original month and day from A1.

Get day from date

In the worksheet below, the goal is to extract the day number from dates in column B. The formula in C5 is:

=DAY(B5)

DAY function example - get day from date

The DAY function takes just one argument: the date from which you want to extract the day. In this example, B5 contains the date January 5, 2016, so DAY returns 5.

You can use DAY to extract the day from a date entered as text (e.g., =DAY("1/5/2016")), but this can produce unpredictable results on computers using different regional date settings. It's better to reference a cell containing a valid date value.

For more details, see Get day from date.

Get first day of month

Before the EOMONTH function was introduced, the DAY function was the standard way to get the first day of a month. In the worksheet below, the goal is to find the first day of the month for each date in column B. The formula in C5 is:

=B5-DAY(B5)+1

DAY function example - get first day in month

This formula works in three steps:

  1. Get the day number from the date with DAY(B5)
  2. Subtract the day from the date (rewinding to day 0, which is the last day of the previous month)
  3. Add 1 to land on the first day of the current month

For example, with the date January 12, 2025 in B5:

=B5-DAY(B5)+1
="12-Jan-2025"-12+1
="31-Dec-2024"+1
="1-Jan-2025"

Note: The formula =EOMONTH(B5,-1)+1 provides a more intuitive way to get the first day of a month. See Get first day of month for details on both approaches.

Days in month

Since the last day of any month equals the total number of days in that month, you can combine DAY with EOMONTH to count days in a month. In the worksheet below, the goal is to get the total number of days in the month for each date in column B. The formula in C5 is:

=DAY(EOMONTH(B5,0))

DAY function example - days in month

Working from the inside out:

  1. EOMONTH returns the last day of the month (with 0 as the second argument, it stays in the same month)
  2. DAY extracts the day number from that end-of-month date

For January 12, 2024:

=DAY(EOMONTH("12-Jan-2024",0))
=DAY("31-Jan-2024")
=31

This correctly handles months with different lengths, including February in leap years (returning 29) and non-leap years (returning 28).

For more details, see Days in month.

Get day name from date

The DAY function returns a number (1-31), not a day name. To get the day name (like "Monday" or "Tuesday") from a date, use the TEXT function with a day name format code. In the worksheet below, the goal is to return the full day name for each date in column B. The formula in C5 is:

=TEXT(B5,"dddd")

DAY function example - get day name

The TEXT function formats a value using a custom format code. The format code "dddd" returns the full day name. You can also use:

=TEXT(B5,"ddd")  // abbreviated day name (Mon, Tue, Wed...)
=TEXT(B5,"dddd") // full day name (Monday, Tuesday, Wednesday...)

Tip: If you only need to display a day name without converting to text, apply a custom number format like "dddd" directly to the cell containing the date.

Add years to date

The DAY function is essential when you need to add years to a date while preserving the month and day. In the worksheet below, the goal is to add the number of years in column C to each date in column B. The formula in D5 is:

=DATE(YEAR(B5)+C5,MONTH(B5),DAY(B5))

DAY function example - add years to date

This formula works by taking apart the date and reassembling it:

  1. YEAR, MONTH, and DAY extract the individual components
  2. The years value (C5) is added to the year
  3. DATE reassembles everything into a new date

For the date March 8, 1960, with 10 years to add:

=DATE(YEAR(B5)+C5,MONTH(B5),DAY(B5))
=DATE(1960+10,3,8)
=DATE(1970,3,8)

Note: The EDATE function provides a simpler way to add years: =EDATE(B5,C5*12). EDATE also handles leap year edge cases better when the start date is February 29.

For more details, see Add years to date.

Notes

  • The DAY function returns a #VALUE! error if the date argument is not a valid Excel date.
  • If the result displays as a date (like 1/1/1900) instead of a number, the cell is formatted as a date. Change the format to General or Number.
  • When dates are entered as text, regional date format differences can cause DAY to misinterpret the day and month. For example, "5/6/2024" means May 6 in the US but June 5 in many other countries.
  • Dates before January 1, 1900, are not supported in Excel's standard date system.
Dave Bruns Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.