iam*_*ind 1 c c++ time dayofweek
为了找到给定日期的天(数字),我使用以下代码编写了<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
Run Code Online (Sandbox Code Playgroud)
根据文档,tm_wday可以保存其中的值[0-6],其中0是星期日。因此,对于星期二(今天),应打印2;但它打印5。
实际tm_wday给出一致的结果,但相差3天。
怎么了
您输入的月份有误,tm_mon是自一月份以来的偏移量,因此七月是6。从联机帮助页:
tm_mon自一月以来的月数,范围为0到11。
输出2:
#include <stdio.h>
#include <string.h>
#include <time.h>
int main(void) {
struct tm time;
memset(&time, 0, sizeof(time));
time.tm_mday = 21;
time.tm_mon = 6;
time.tm_year = 2015-1900;
mktime(&time);
printf("%d\n", time.tm_wday);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您应使用memset(3)或类似的命令将其他字段初始化为0 。
| 归档时间: |
|
| 查看次数: |
1672 次 |
| 最近记录: |