C++ 和 Windows : Is SYSTEMTIME always based on the Gregorian calendar?

标签 c++ windows winapi time

我有一个 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

最佳答案

在看SYSTEMTIME在 MSDN 上,它说:

Retrieves the current system date and time. The system time is expressed in Coordinated Universal Time (UTC).

不管怎样,SYSTEMTIME 似乎都适用于公历。

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

关于C++ 和 Windows : Is SYSTEMTIME always based on the Gregorian calendar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18180436/

相关文章:

c++ - 复制状态分配器 : standard library allocator semantics and internal memory

c++ - 如何通过函数(不在任何类中)在类中使用私有(private)变量?

python - 如何在 cffi 中支持 64 位指针?

windows - 生成唯一的机器 ID

c++ - 如何将包含#pragma optimize( "a") 的代码从 VC++7 移植到 VC++9?

c++ - 使用默认网络摄像头的 API?

Windows CPU 调度程序 - 非常高的内核时间

python - 我可以使用 PIL 以全屏模式显示图像吗?

c++ - 如何从 MFC 应用程序调用函数的 Win32 API 版本?

windows - "TCHAR cFileName[MAX_PATH];"- MSDN 库中的错误?