[lang-ref] ( example_datetime_to_excel_serial ) ( python )

def test_example_datetime_to_excel_serial():
    def datetime_to_excel_serial(dt: datetime.datetime) -> float:
        if dt < datetime.datetime(1900, 3, 1):
            raise ValueError('Not supported: avoid leap year bug')
        delta = dt - datetime.datetime(1899, 12, 31)
        serial = delta.total_seconds() / 86400.0
        serial += 1
        return serial

    assert datetime_to_excel_serial(datetime.datetime(2025, 11, 23, 18, 32, 15, 122996)) == pytest.approx(45984.7723972569)
    assert datetime_to_excel_serial(datetime.datetime(2025, 11, 23,  0,  0,  0,      0)) == pytest.approx(45984)