我需要找到给定日期的工作日;我有以下代码但不起作用
int day;
char *str ="25/02/2014";
struct tm tm;
if (strptime(str, "%d/%m/%Y", &tm) != NULL)
{
time_t t = mktime(&tm);
day = localtime(&t)->tm_wday;
return day;
}
我在这里做错了什么?
答案 0 :(得分:2)
您应该使用struct tm tm;
代替struct tm * tm;
您需要使用tm
初始化memset(&tm,0x00,sizeof(tm));
,否则mktime
将返回-1
答案 1 :(得分:0)
2014年2月27日的结果4
是正确的,请参阅time.h
<强>描述强>
...
int tm_wday星期几[0,6](星期日= 0)。
星期日是0,星期一= 1,星期二= 2,星期三= 3,星期四= 4 ,......