1970 年以后的时间,可以用 time.h 里的函数计算。时间精度为秒。按题目要求,输出时间单位用天。程序如下:
公司主营业务:做网站、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出漳浦免费做网站回馈大家。
#include stdio.h
#include time.h
time_t YMD_hhmmss_2_s70(int Y, int M, int D, int hh, int mm, int ss){
struct tm *target_tm;
time_t tt;
time (tt);
target_tm=localtime(tt);
target_tm-tm_year = Y - 1900;
target_tm-tm_mon= M - 1;
target_tm-tm_mday = D;
target_tm-tm_hour = hh; // hour
target_tm-tm_min = mm;
target_tm-tm_sec = ss;
tt = mktime(target_tm); // from tm to time_t (s)
return tt;
}
int main()
{
int y1,m1,d1,y2,m2,d2;
time_t t1,t2;
int dt;
printf("input y1 m1 d1: ");
scanf("知并%d %d %d",y1,m1,d1);
printf("\ninput y2 m2 d2: ");
scanf("%d %d %d",y2,m2,d2);
t1 = YMD_hhmmss_2_s70(y1,m1,d1,0,0,0);
t2 = YMD_hhmmss_2_s70(y2,m2,d2,0,0,0);
dt = (t2-t1)/(24*3600);
printf("\ndt=%d\n",dt);
return 0;
}
这里未包含日期的合法性判断。磨陵
1970 年以前 要另写程序。某年的日子是当年的第几天可用下面函数得出:
int YMD_2_JD(int Y, int M, int D){
const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int JD,i;
JD=D;
for (i=0;iM;i++) JD+=MonthDay[i];
if (((Y%4==0)(Y%100!=0)||(Y%400==0)) (M2)) JD++;
return JD;
}
整年的天数,涉及闰年的判断:搭游迹
某年是否闰年,用 (Y%4==0)(Y%100!=0)||(Y%400==0) 判断。闰年366天,平年365天。 有了这些,写程序不难。
未考虑公元前的年月日计算。
#include橡拆stdio.h
int main()
{
int yyyy,mm,dd,a,b;
scanf("%d/%d/%d",yyyy,mm,dd);
a=31*(mm1)+28*(mm2)+31*(mm3)+30*(mm4)+31*(mm5)+30*(mm6)+31*(mm7)+31*(mm梁茄枣8)+30*(mm纳顷9)+31*(mm10)+30*(mm11)+dd;
b=((yyyy%4==0)*(yyyy%100!=0)+(yyyy%400==0))*(mm2);
printf("%d\n",a+b);
return 0;
}
#include stdio.h
#include stdlib.h
#include string.h
#include math.h
#include time.h
int get_days(const char* from, const char* to);
time_t convert(int year,int month,int day);
int main()
{
const char* from="2013-3-15";
const char* to="2015-8-14";
int 握迅days=get_days(from,to);
printf("From:%s\nTo:%s\n",from,to);
printf("%d\n",days);
return 0;
}
time_t convert(int year,int month,int day)
{
struct tm info={0};
info.tm_year=year-1900;
info.tm_mon=month-1;
info.tm_mday=day;
return mktime(info);
}
int get_days(const char* from, const char* to)
{
int year,month,day,fromSecond,toSecond;
sscanf(from,"%d-%d-%d",year,month,day);
fromSecond=(int)convert(year,month,day);
sscanf(to,"%d-%d-%d",year,段基此month,day);
toSecond=(int)convert(year,month,day);
return (toSecond-fromSecond)/24/3600;
}
From:2013-3-15
To:2015-8-14
882
Press any 锋渗key to continue
这才算是用了库函数了···