DAYS360
Supported, behaves as documentedCategory: Date and time · Last tested 2026-09-01
Real compatibility results for the DAYS360 function: executed in Excel for the web, Google Sheets and LibreOffice Calc, with desktop Excel behavior from Microsoft’s official documentation (we do not run desktop Excel — Excel for the web is a different application and is executed separately). Syntax and links to that documentation are below.
Support matrix
| Engine | Documented | Live-tested | Verdict |
|---|---|---|---|
| Excel (desktop) | Yes | No — documented only | n/a |
| Excel for the web | — | Yes (recalc, 2026-09-01) | Supported, behaves as documented |
| Google Sheets | Yes | Yes (Drive import, 2026-08-29) | Supported, behaves as documented |
| LibreOffice Calc | Yes | Yes (25.8.7.3, 2026-07-29) | Supported, behaves as documented |
LibreOffice version history
We executed the same test cases under each LibreOffice release to show exactly when DAYS360’s support changed — not documentation claims, real results.
| LibreOffice version | Verdict | Tested |
|---|---|---|
| 24.2.0.3 | Supported, behaves as documented | 2026-08-29 |
| 24.8.7.2 | Supported, behaves as documented | 2026-08-29 |
| 25.2.0.3 | Supported, behaves as documented | 2026-08-29 |
| 25.8.7.3 | Supported, behaves as documented | 2026-07-29 |
Executed test cases
Excel for the web (executed 2026-09-01 via OneDrive recalculation)
These values come from Excel for the web, not from desktop Excel. They are two different implementations of the calculation engine, and this run measured only the web one: the corpus was uploaded to OneDrive as .xlsx, recalculated by Excel for the web on open, and downloaded again for readback. Excel for the web is a rolling service with no pinnable version, so the run is identified by its date. Where a value here disagrees with the Expected column — which is Microsoft’s documentation of the desktop product — we cannot tell you whether the web engine diverges from the desktop one or the documentation is wrong about both, because we do not run desktop Excel.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =DAYS360(DATE(2011,1,30),DATE(2011,2,1)) | Microsoft's own documented example, default (US/NASD) method. Verified via https://support.microsoft.com/en-us/office/days360-function-b9a509fd-49ef-407e-94df-0cbda5718c2a | 1 | 1 | Matched |
| =DAYS360(DATE(2011,1,1),DATE(2011,12,31)) | A second literal example from the same documentation page, showing the 30-day-month/360-day-year convention | 360 | 360 | Matched |
| =DAYS360(DATE(2024,1,1),DATE(2024,1,31)) | US (NASD) method month-end rule: end_date is the last day of its month (Jan 31) and start_date (Jan 1) is before the 30th, so end_date shifts to the 1st of the NEXT month (Feb 1) before the 30/360 day count. Verified via the DAYS360 documentation's description of the US method's end-of-month handling | 30 | 30ProvenanceEffective dates become Jan 1 -> Feb 1 -> (2-1)*30 + (1-1) = 30 |
Matched |
| =DAYS360(DATE(2024,1,1),DATE(2024,1,31),TRUE) | Same date pair as DAYS360_us_method_month_end_shift but method=TRUE (European method): the European rule simply clamps day-31 dates to day 30, with none of the US method's 'shift end_date to next month' logic, giving a genuinely DIFFERENT result (29, not 30) for the identical inputs -- the documented US-vs-European divergence | 29 | 29ProvenanceEffective dates become Jan 1 -> Jan 30 (31 clamped to 30, no next-month shift) -> (1-1)*30 + (30-1) = 29 |
Matched |
Google Sheets (executed 2026-08-29 via Drive import)
Google Sheets is a rolling service with no pinnable version, so this run is identified by its date. The corpus was imported to Drive as .xlsx, recalculated by Sheets, and exported back for readback.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =DAYS360(DATE(2011,1,30),DATE(2011,2,1)) | Microsoft's own documented example, default (US/NASD) method. Verified via https://support.microsoft.com/en-us/office/days360-function-b9a509fd-49ef-407e-94df-0cbda5718c2a | 1 | 1 | Matched |
| =DAYS360(DATE(2011,1,1),DATE(2011,12,31)) | A second literal example from the same documentation page, showing the 30-day-month/360-day-year convention | 360 | 360 | Matched |
| =DAYS360(DATE(2024,1,1),DATE(2024,1,31)) | US (NASD) method month-end rule: end_date is the last day of its month (Jan 31) and start_date (Jan 1) is before the 30th, so end_date shifts to the 1st of the NEXT month (Feb 1) before the 30/360 day count. Verified via the DAYS360 documentation's description of the US method's end-of-month handling | 30 | 30ProvenanceEffective dates become Jan 1 -> Feb 1 -> (2-1)*30 + (1-1) = 30 |
Matched |
| =DAYS360(DATE(2024,1,1),DATE(2024,1,31),TRUE) | Same date pair as DAYS360_us_method_month_end_shift but method=TRUE (European method): the European rule simply clamps day-31 dates to day 30, with none of the US method's 'shift end_date to next month' logic, giving a genuinely DIFFERENT result (29, not 30) for the identical inputs -- the documented US-vs-European divergence | 29 | 29ProvenanceEffective dates become Jan 1 -> Jan 30 (31 clamped to 30, no next-month shift) -> (1-1)*30 + (30-1) = 29 |
Matched |
LibreOffice Calc 25.8.7.3 (tested 2026-07-29)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =DAYS360(DATE(2011,1,30),DATE(2011,2,1)) | Microsoft's own documented example, default (US/NASD) method. Verified via https://support.microsoft.com/en-us/office/days360-function-b9a509fd-49ef-407e-94df-0cbda5718c2a | 1 | 1 | Matched |
| =DAYS360(DATE(2011,1,1),DATE(2011,12,31)) | A second literal example from the same documentation page, showing the 30-day-month/360-day-year convention | 360 | 360 | Matched |
| =DAYS360(DATE(2024,1,1),DATE(2024,1,31)) | US (NASD) method month-end rule: end_date is the last day of its month (Jan 31) and start_date (Jan 1) is before the 30th, so end_date shifts to the 1st of the NEXT month (Feb 1) before the 30/360 day count. Verified via the DAYS360 documentation's description of the US method's end-of-month handling | 30 | 30ProvenanceEffective dates become Jan 1 -> Feb 1 -> (2-1)*30 + (1-1) = 30 |
Matched |
| =DAYS360(DATE(2024,1,1),DATE(2024,1,31),TRUE) | Same date pair as DAYS360_us_method_month_end_shift but method=TRUE (European method): the European rule simply clamps day-31 dates to day 30, with none of the US method's 'shift end_date to next month' logic, giving a genuinely DIFFERENT result (29, not 30) for the identical inputs -- the documented US-vs-European divergence | 29 | 29ProvenanceEffective dates become Jan 1 -> Jan 30 (31 clamped to 30, no next-month shift) -> (1-1)*30 + (30-1) = 29 |
Matched |
Docs & syntax
- Excel (desktop): official documentation
- Google Sheets: official documentation
- LibreOffice Calc: official documentation
Where DAYS360 behaves differently
- Bond and treasury functions after a migration: what actually breaks
Executed across 26 fixed-income functions and 161 cases: ODDFPRICE and ODDFYIELD are literal stubs in LibreOffice, TBILLPRICE prices a two-year bill, INTRATE's default basis loses a day, and MDURATION is wrong on actual/actual. 83 of 84 documented #NUM! cases arrive as #VALUE!. Google Sheets matched 127 of 161.