从给定日期开始的星期几

时间:2014-02-27 12:46:37

标签: c++ c datetime

我需要找到给定日期的工作日;我有以下代码但不起作用

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;
}

我在这里做错了什么?

2 个答案:

答案 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 ,......