×

mktime 程序 c

c语言练习程序,mktime总是返回-1,是怎么回事啊?在C语言中,strcmp()是什么函数

admin admin 发表于2022-06-25 01:12:37 浏览109 评论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;
}

在C语言中,strcmp()是什么函数



strcmp简介:


函数原型int strcmp(const char *str1,const char *str2);


其作用为:


将str1的各个字母的ASCII码与str2的进行比较。


若str1》str2则返回整数,若str1=str2返回0,否则,返回负数。


一般这样调用:


if(strcmp(str1,str2)==0)




当然,这是C语言的库函数,它的代码存储在某个库文件中。


在string.h里只是一个声明。


我给你写一下,大概是这样的:


int strcmp(const char *str1,const char *str2)。


英语production和reproduction区别


production:
n.产量; 产品; 生产,制作; 夸张的行动或形象,小题大做;
reproduction:
n.繁殖,生殖; 再生产,再现,[心]再生作用; 复制品;