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.繁殖,生殖; 再生产,再现,[心]再生作用; 复制品;