【问题标题】:C++ and Windows: Is SYSTEMTIME always based on the Gregorian calendar?C++ 和 Windows:SYSTEMTIME 是否始终基于公历?
【发布时间】:2013-08-13 09:03:51
【问题描述】:

我有一个 SYSTEMTIME 结构。此结构可能包含 UTC 时间或从 Windows API 函数在某个先前时间点返回的本地时间。

在 C++ 中,我根据函数返回的 SYSTEMTIME 计算一年中的哪一天。换句话说,自 1 月 1 日以来有多少天。为了做到这一点,我需要注意闰年的额外一天,即 2 月 29 日。如果我知道 SYSTEMTIME 始终基于公历,那就很容易了。

如果外国用户使用其他日历系统,我计算一年中的哪一天会不会有问题?我似乎无法在我的机器上执行此操作来测试该理论,我什至不知道这是否合理。有任何 Microsoft 专家可以在这里帮助我吗?

也许更好的问题是是否已经有一个 Windows API 函数可以根据 SYSTEMTIME 计算一年中的哪一天?我找不到。

我能找到的最接近的搜索是this javascript question,这很有趣,但我认为与我所问的非常不同。直到明天(星期一)我才会看到对这个问题的任何回复,所以如果有任何后续问题我会回答他们。

谢谢!

编辑:我找到了这篇文章,但它仍然没有回答问题:
OS level support for non-Gregorian calendars? - Sorting it all Out - Site Home - MSDN Blogs

【问题讨论】:

  • 我很确定 Windows API 总是根据公历返回和解释 SYSTEMTIME。我已经要求 MS(通过 MSDN 反馈工具)将此添加到文档中,但我预计他们需要一些时间来考虑该请求。

标签: c++ windows winapi time


【解决方案1】:

在查看 MSDN 上的 SYSTEMTIME 时,它说:

检索当前系统日期和时间。系统时间以协调世界时 (UTC) 表示。

似乎无论如何,SYSTEMTIME 都适用于公历。

祝你好运,希望对我有所帮助。

【讨论】:

    猜你喜欢
    • 2016-04-05
    • 2018-08-21
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2011-02-07
    • 2013-05-21
    相关资源
    最近更新 更多