Skip to main content

DATE

Creates a date value from year, month, and day components.

Quick Example​

=DATE(2025, 12, 25)

Returns the date December 25, 2025.

Syntax​

=DATE(year, month, day)

Arguments​

  • year (required): The year (0-9999). Years 0-1899 are treated as 1900+year.
  • month (required): The month (1-12, but can be any integer)
  • day (required): The day of the month (1-31, but can be any integer)

Examples​

Create Specific Date​

=DATE(2025, 12, 25)

Returns December 25, 2025

Year Shortcuts​

=DATE(24, 6, 15)

Returns June 15, 2024 (24 is interpreted as 1924, add 1900)

Month Overflow​

=DATE(2025, 13, 1)

Returns January 1, 2026 (13th month becomes next year)

Negative Month​

=DATE(2025, -1, 1)

Returns November 1, 2024 (goes back 2 months from Jan 2025)

Day Overflow​

=DATE(2025, 1, 32)

Returns February 1, 2025 (32nd day of January is Feb 1)

Calculate Future Date​

=DATE(YEAR(TODAY()), MONTH(TODAY()), DAY(TODAY()) + 30)

Returns date 30 days from today

How It Works​

Automatic Rollover​

DATE handles month and day rollovers automatically:

  • Months > 12 roll into next year
  • Months < 1 roll back to previous year
  • Days beyond month end roll into next month
  • Negative days roll back to previous month

Year Handling​

  • Years 0-1899: Add 1900 (e.g., 25 becomes 1925)
  • Years 1900-9999: Used as-is
  • Years ≥ 10000 or < 0: Return #NUM! error

Julian Day Calculation​

DATE uses Julian Day Number algorithm:

  • Correctly handles leap years
  • Accounts for century rules
  • Compatible with Excel date system

Common Use Cases​

Create Date from Components​

=DATE(A1, B1, C1)

Where A1=year, B1=month, C1=day

First Day of Month​

=DATE(YEAR(A1), MONTH(A1), 1)

Last Day of Month​

=DATE(YEAR(A1), MONTH(A1) + 1, 0)

(Day 0 = last day of previous month)

Add Months​

=DATE(YEAR(A1), MONTH(A1) + 3, DAY(A1))

Add 3 months to date in A1

First Day of Year​

=DATE(2025, 1, 1)

Last Day of Year​

=DATE(2025, 12, 31)

Error Handling​

Year Out of Range​

=DATE(10000, 1, 1)

Returns #NUM! (year must be 0-9999)

=DATE(-5, 1, 1)

Returns #NUM! (year cannot be negative)

Error Propagation​

=DATE(2025, #DIV/0!, 1)

Returns #DIV/0!

Common Errors​

ErrorCauseSolution
#NUM!Year out of range (0-9999)Use valid year
#VALUE!Non-numeric argumentsProvide numbers for all arguments

Technical Details​

Implementation Notes​

  • Uses Julian Day Number algorithm
  • Handles month/day overflow automatically
  • Includes Excel's 1900 leap year bug for compatibility
  • Timezone-aware (returns midnight in user's timezone)

Leap Year Handling​

DATE correctly identifies leap years:

  • Divisible by 4: leap year
  • Except divisible by 100: not leap year
  • Except divisible by 400: leap year
=DATE(2024, 2, 29)  // Valid (2024 is leap year)
=DATE(2025, 2, 29) // Returns Mar 1, 2025 (overflow)

Advanced Examples​

Calculate Age​

=(TODAY() - DATE(1990, 5, 15)) / 365.25

Nth Day of Year​

=DATE(2025, 1, 1) + (N - 1)

Returns Nth day of 2025

Same Date Next Year​

=DATE(YEAR(A1) + 1, MONTH(A1), DAY(A1))

Quarter Start Date​

=DATE(YEAR(A1), (CEIL(MONTH(A1)/3) - 1) * 3 + 1, 1)