Contact

EOMONTH Function (OpenOffice Calc)

Date & Time Intermediate OpenOffice Calc

Find month-end dates with Apache OpenOffice EOMONTH. Use zero or signed month offsets, compare EDATE and build anchored reporting periods.

Verification status: Eight ordinary reference formulas were recalculated in Apache OpenOffice 4.1.16 on Linux x86-64, Build 9816, through generated native ODF and GUI hard recalculation. Saved identities and results were checked. How formula examples are checked

Quick answer: =EOMONTH(DATE(2024;1;15);0) returned 2024-01-31 as a date serial in the tested Apache OpenOffice 4.1.16 build.

Availability and version history

  • Introduced: First release not established; documented by OpenOffice.org 3.3.
  • Supported in: Apache OpenOffice 4.1.16; this is a verified release, not a final supported version.
  • Scope: Desktop Calc, English function names and semicolon-separated formulas.
  • Checked: October 14, 2026. Eight ordinary reference formulas were recalculated from generated ODF in 4.1.16 on Linux x86-64, Build 9816. Source and independent calendar arithmetic were checked.

What EOMONTH returns

EOMONTH returns the last calendar day of the month that lies Months away from StartDate’s month. Months=0 returns the current month’s final day. Unlike EDATE, the starting day number does not need to be preserved. Release implementation.

Syntax and arguments

EOMONTH(StartDate;Months)
  • StartDate: required date value, date cell or DATE expression.
  • Months: required signed integer offset. Zero selects the input month; positive and negative values select later and earlier months.
  • These examples use whole dates and offsets. Both implementation parameters are integer-valued.

Eight reproducible examples

The native serials are also interpreted as Gregorian calendar dates under the workbook’s 1899-12-30 date epoch. Numerical values are shown to twelve decimal places where needed. Enter the DATE expressions directly rather than substituting locale-dependent text.

Formula Native 4.1.16 serial Calendar date
=EOMONTH(DATE(2024;1;15);0) 45322 2024-01-31
=EOMONTH(DATE(2024;1;31);1) 45351 2024-02-29
=EOMONTH(DATE(2024;2;29);1) 45382 2024-03-31
=EOMONTH(DATE(2023;1;31);1) 44985 2023-02-28
=EOMONTH(DATE(2024;3;15);-1) 45351 2024-02-29
=EOMONTH(DATE(2024;6;15);6) 45657 2024-12-31
=EOMONTH(DATE(2024;12;31);12) 46022 2025-12-31
=EOMONTH(DATE(2024;1;15);-1) 45291 2023-12-31

Practical worksheet

=EOMONTH(DATE(2024;1;15);0) gives January 31, 2024. With offset 1 it gives February 29. =EOMONTH(DATE(2024;3;15);-1) also gives February 29. The input need not already be a month-end date.

For a reporting-month start, use =EOMONTH(A2;-1)+1. With A2=March 15, 2024, the previous month-end is February 29 and the next day is March 1. An exclusive next-month boundary is =EOMONTH(A2;0)+1; this is often clearer than adding a nearly-one-day timestamp to the final date.

Advanced interpretation and checks

The source moves the calendar month and asks for its length before returning that month’s last date. December rollover is included in the examples: December 31, 2024 plus 12 months gives December 31, 2025. The independent month-index calculation agrees with all eight serial results.

For whole offsets in the ordinary supported range, repeated EOMONTH steps remain at month-end. Starting January 31, 2024 and stepping one month twice yields February 29 and March 31. EDATE instead retains the clamped day in a chained schedule, so its second step would be March 29. Choose the function from the scheduling rule.

Boundaries and troubleshooting

Format the numeric answer as a date when that is the intended presentation. The table’s calendar interpretation uses the tested workbook’s 1899-12-30 date epoch; copying bare serials into another date system requires care.

The tests cover ordinary dates and whole offsets. Fractional month conversion, invalid dates and extreme date limits were not executed. A month-end reporting boundary is not by itself a business-day adjustment; weekends and holidays require a separate rule.

Official evidence and checking scope

The generated ODF produced the informational load warning “Not all attributes could be read.” The sheet was hard-recalculated and saved separately. All eight ordinary function identities and results were reconciled; a stale SUM cache changed from 999999 to 3 and an uncached SUM returned 7. This establishes the stated examples, not every workbook style or invalid input. Other explanatory identities are independent calculations. The authoring-tool XLSX was not executed in OpenOffice, and its preview values are not the native results reported here.