C windows上的mktime故障

C windows上的mktime故障,c,windows,visual-studio,C,Windows,Visual Studio,使用visual studio 2013创建标准win32控制台应用程序时,无论传递的参数如何,mktime都会返回负值(-1) 是否有任何原因导致此代码以这种方式失败?我看不出通过的tm参数的任何组合有任何区别 #include "stdafx.h" #include <time.h> int _tmain(int argc, _TCHAR* argv[]) { struct tm stm; stm.tm_sec = 27; stm.tm_min = 5;

使用visual studio 2013创建标准win32控制台应用程序时,无论传递的参数如何,mktime都会返回负值(-1)

是否有任何原因导致此代码以这种方式失败?我看不出通过的tm参数的任何组合有任何区别

#include "stdafx.h"
#include <time.h>

int _tmain(int argc, _TCHAR* argv[])
{
    struct tm stm;
    stm.tm_sec = 27;
    stm.tm_min = 5;
    stm.tm_hour = 18;
    stm.tm_mday = 2;
    stm.tm_mon = 1;
    stm.tm_year = 2015;
    stm.tm_wday = 0;
    stm.tm_yday = 0;
    printf("%lld\n", mktime(&stm));//prints -1
    return 0;
}
#包括“stdafx.h”
#包括
int _tmain(int argc,_TCHAR*argv[]
{
struct-tm-stm;
stm.tm_sec=27;
stm.tm_min=5;
stm.tm_小时=18;
stm.tm_mday=2;
stm.tm_mon=1;
stm.tm_年=2015年;
stm.tm_wday=0;
stm.tm_yday=0;
printf(“%lld\n”,mktime(&stm));//prints-1
返回0;
}

您的
2015年
stm.tm\u年
值无效。减去
1900
es,如中所述


请注意,月份值从1月份的0开始。

您的
2015
值对于
stm.tm\u year
无效。减去
1900
es,如中所述


请注意,月份值从1月的0开始。

也许你需要从年中减去1900。也许你需要从年中减去1900。谢谢,我错过了,月份是以零为基础的,谢谢。你的链接是到一个非英语页面。谢谢,我错过了这个,而且这个月是零基的,谢谢。您的链接指向非英语页面。