💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 日期时间型 ## 基本信息 日期时间型 目前采用 `OLEDate` (COMDateTime) 格式(外部套了层struct) `OLEDate` 使用浮点类型 `double` (IEEE 754 binary64) 存储数据 ## 数据格式 | 整数部分 及 符号 | 小数部分 | | --- | --- | | 自 1899-12-30 至今的天数(负数表示 1899-12-30 之前) | 所在天已流经的时间(如 0.5 表示正午 12 时,0.75 表示 18 时) | ### 特别注意 ***即使数值为负值,其小数部分所代表的时间仍然按照正值意义解释*** 即: ```python # Sign = -1 or 1 # IntegralPart >= 0 # 0 <= FractionalPart < 1 if Value == Sign * (IntegralPart + FractionalPart): DayOffest = (Sign * IntegralPart) + FractionalPart ``` 例如: - \-1.25 **并不**代表 1899-12-30 向负方向推进 1.25 天(所得结果为 `1899-12-28 18:00:00 24小时制`) - \-1.25 实际代表 1899-12-30 向负方向推进 1 天,再向正方向推进 0.25 天(所得结果为 `1899-12-29 06:00:00 24小时制`) ## 互操作性 - .NET 程序可通过 `FromOADate` / `ToOADate` 与之进行互操作 - COM 组件所用标准的日期时间型即为 `OLEDate` - C++ 中可用 `COleDateTime` (**并不推荐**)处理,也可自行根据数据格式处理 - Win32 中可使用 SDK 函数 `VariableTimeToSystemTime` 解析数据 - **_EOC中,库层面 `e::system::datetime` 已经提供了基本的成员函数用于访问日期时间型的数据,用户层面则由时间处理相关命令提供支持_**