×

mktime 程序 c

c语言练习程序,mktime总是返回-1,是怎么回事啊?cough是什么意思

admin admin 发表于2022-07-05 16:40:06 浏览95 评论0

抢沙发发表评论

c语言练习程序,mktime总是返回-1,是怎么回事啊


mktime(): 将时间转换为自1970年1月1日以来逝去时间的秒数,发生错误时返回-1.

struct tm里面,tm_year以1900年为基准。

综上,中国所在时区为+8,mktime()的参数里面,tm.tm_year的最小值是70,同时tm.tm_hour的最小值是8,否则mktime都会出错。这也是之前中国区苹果手机调时间到1970年1月1日8时前会崩溃的原因。-程序

所以,在中国,对应1970年1月1日0时0分0秒的时间结构应该是:

 time0.tm_year = 70;
 time0.tm_mon = 0;
 time0.tm_mday = 1;
 time0.tm_hour = 8;
 time0.tm_hour = 0;
 time0.tm_min = 0;
 time0.tm_sec = 0;-c


#include 《stdio.h》
#include 《time.h》
int main()
{
 struct tm time0 = { 0 }, time1 = { 0 }; // = { 0,0,0,1,0,0,0,0,0 }, time1 = { 0 };
  int year, mon, mday;
  time0.tm_year = 70;  //mktime能接受的最小年数 
  time0.tm_mon = 0;   //1月 
  time0.tm_mday = 1; //1日 
  time0.tm_hour = 8;  //8时 +8时区在1970年所能接受的最小小时数 
  time0.tm_hour = 0; 
  time0.tm_min = 0; 
  time0.tm_sec = 0; 
  printf(““); scanf(“%4d-%2d-%2d“, &year, &mon, &mday); 
  time1.tm_year = year - 1900; //struct tm里面,tm_year以1900年为基准。
  time1.tm_mon = mon - 1; 
  time1.tm_mday = mday; 
  time1.tm_hour = 0; 
  time1.tm_min = 0; 
  time1.tm_sec = 0; 
  long seconds = (long)(difftime(mktime(&time1), mktime(&time0))); 
  long days = (seconds + 86399) / 86400; 
  if (days % 5 《= 2)
    printf(“he is working“); 
  else
    printf(“he is having a rest\n“);
  system(“pause“); 
  return 0;
}

cough是什么意思


cough
英 [kɒf] 美 [kɔf]

n. 咳嗽,咳嗽声;咳嗽病
vt. 咳出
vi. 咳嗽
n. (Cough)人名;(英)考夫

No drug could suppress his cough.
吃什么药也不能止住他的咳嗽。
-程序

Center是什么意思


center [’sent�0�5] n. 中心,中央;中锋;中心点vi. 居中,被置于中心vt. 集中,使聚集在一点;定中心adj. 中央的,位在正中的