gpt4 book ai didi

将 1900 年 1 月 1 日以来的天数转换为今天的日期

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:50 26 4
gpt4 key购买 nike

typedef struct dbdatetime
{ // Internal representation of DATETIME data type
LONG dtdays; // No of days since Jan-1-1900 (maybe negative)
ULONG dttime; // No. of 300 hundredths of a second since midnight
} DBDATETIME;

我正在尝试将此结构转换为今天的日期。我不怀疑时间会给我带来很多麻烦,但我在将总天数转换为正确的月份和日期的逻辑上遇到了问题。

例。 11 月 7 日星期五是 41948 天。

您可以除以 365.2425+1900 得到当前年份,但如何得到正确的月份/日期。

C 有内置的东西来处理这个吗?我不是一名 C 程序员。

最佳答案

C 标准中没有任何内容可以直接处理此问题,但如果您愿意编写特定于操作系统的代码,或者可以导入像 boost::date_time 这样的库,这是最好的选择。不要试图自己处理它,除非你可以接受边缘情况是错误的。众所周知,日期和时间很难准确无误。

这里是 date_time 的文档,它可以对日期进行算术运算,包括“将 N 天添加到 1/1/1900”。 http://www.boost.org/doc/libs/1_56_0/doc/html/date_time/gregorian.html#date_time.gregorian.date_duration

date d(1900, Jan, 1)
d += days(dtdays);

编辑:OP 不能使用提升,但我会把它留在这里以防将来的访问者可以使用该信息。

关于将 1900 年 1 月 1 日以来的天数转换为今天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26792144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com