[lang-ref] ( example_excel_serial_to_datetime ) ( python )

def test_example_excel_serial_to_datetime():
    def excel_serial_to_datetime(serial: float) -> datetime.datetime:
        import math
        if serial <= 60:
            raise ValueError('Not supported: avoid leap year bug')
        serial -= 1
        days = int(math.floor(serial))
        frac = serial - days
        dt = datetime.datetime(1899, 12, 31) + datetime.timedelta(days=days)
        dt = dt + datetime.timedelta(days=frac)
        return dt

    assert excel_serial_to_datetime(45984.7723972569 ).strftime(r'%Y/%m/%d %H:%M:%S.%f') == '2025/11/23 18:32:15.122996'
    assert excel_serial_to_datetime(45984            ).strftime(r'%Y/%m/%d %H:%M:%S.%f') == '2025/11/23 00:00:00.000000'