【发布时间】:2015-10-10 21:22:05
【问题描述】:
为了找到给定日期的日期(数字),我使用<ctime> 编写了以下代码:
tm time {ANY_SECOND, ANY_MINUTE, ANY_HOUR, 21, 7, 2015 - 1900};
mktime(&time); // today's date
PRINT(time.tm_wday); // prints 5 instead of 2 for Tuesday
根据文档,tm_wday 可以在[0-6] 之间保存值,其中 0 是星期日。因此对于星期二(今天),它应该打印 2;但它prints 5.
实际上tm_wday 给出了一致的结果,但相差 3 天。
这里有什么问题?
【问题讨论】:
-
选择一种语言。 C 或 C++ 并坚持下去。得到答案后不要更改您的代码。它通常会使答案无效。
-
@SouravGhosh,我认为没有必要只坚持其中之一。
<time.h>和<ctime>分别在 C 和 C++ 中可用。同时打开两个标签可以提供更好的可见性。代码没有改变,只是从代码中删除了std::,以避免有人从C中取消标记。这没有区别。 -
您的代码位于
C。那为什么要标记c++呢?