mktime返回-1的原因

#include 
#include 
#include 
void main()
{
 int y=2010,m=4,d=4,hh=1,mm=2,ss=3;
 time_t curr;
 struct tm timecube;
 struct tm *ptime;
//  time(&curr);
//  printf("%d\n",curr);

 timecube.tm_year=y-1900;
 timecube.tm_mon=m-1;
 timecube.tm_mday=d;
 timecube.tm_hour=hh;
 timecube.tm_min=mm;
 timecube.tm_sec=ss;
 ptime=&timecube;
 curr=mktime(ptime);
 if(-1 == curr)
  printf("时间有误");
 printf("%ld",curr);
 getch();
}
关键是对于struct tm结构体的赋值,加上了
timecube.tm_hour=hh;
timecube.tm_min=mm;
timecube.tm_sec=ss;
后,返回值正常,将时间转换为自1970年1月1日以来失去时间的秒数。否则返回-1。

你可能感兴趣的:(mktime)