[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)