资源描述:
《两个日期之间天数的计算C语言程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、两个日期之间天数的计算C语言程序(包含两端日期)#includeintY1,M1,D1,Y2,M2,D2;intMT1,MT2,i,RES,L=0;intLeapyear();//判断闰年函数intcount_days();//计算天数函数intcount_days1();//第一年(Y1)小于第二年(Y2)时天数计算intcount_days2();//第一年(Y1)小于第二年(Y2)时天数计算/*--------------主函数--------------*/main(){enter_startdate();
2、enter_expirydate();count_days();printf("%d.%d.%d到%d.%d.%d共%d天",Y1,M1,D1,Y2,M2,D2,RES);}/*--------------判断是否为闰年函数--------------*/intLeapyear(intx){if(x%4==0&&x%100!=0
3、
4、x%100==0&&x%400==0)x=1;elsex=0;returnx;}/*--------------输入起始日期函数--------------*/intenter_startda
5、te(){printf("输入起始日期(年月日):");scanf("%d%d%d",&Y1,&M1,&D1);while(M1>12
6、
7、D1>31){printf("输入有误,请重新输入:");scanf("%d%d%d",&Y1,&M1,&D1);}while(M1==2
8、
9、M1==4
10、
11、M1==6
12、
13、M1==9
14、
15、M1==11){if(M1==2&&D1>29
16、
17、D1>30){printf("输入有误,请重新输入:");scanf("%d%d%d",&Y1,&M1,&D1);}elsebreak;}returnY1,M1,D1
18、;}/*--------------输入截止日期函数--------------*/intenter_expirydate(){printf("输入截止日期(年月日):");scanf("%d%d%d",&Y2,&M2,&D2);while(M2>12
19、
20、D2>31){printf("输入有误,请重新输:");scanf("%d%d%d",&Y2,&M2,&D2);}while(M2==2
21、
22、M2==4
23、
24、M2==6
25、
26、M2==9
27、
28、M2==11){if(M2==2&&D2>29
29、
30、D2>30){printf("输入有误,请重新
31、输入:");scanf("%d%d%d",&Y2,&M2,&D2);}elsebreak;}returnY2,M2,D2;}/*--------------两个日期间天数计算函数--------------*/intcount_days(){//--考虑两个日期间闰年天数for(i=Y1+1;i=2&&Leapyear(Y1))L-=1;if(M2<=2&&Leapyear(Y2))L-=1;//printf("L=%d",L);}if(Y132、2时count_days1();else//Y1=Y2时count_days2();returnRES;}/*--------------Y133、D1);break;case6:MT1=366-(151+D1);break;case7:MT1=366-(181+D1);break;case8:MT1=366-(212+D1);break;case9:MT1=366-(243+D1);break;case10:MT1=366-(273+D1);break;case11:MT1=366-(304+D1);break;case12:MT1=366-(334+D1);break;//default:printf("输入有误");}if(M1>2&&Leapyear(Y1))//Y1为
34、闰年,且M1>2,则该年内的天数减一天MT1-=1;//printf("MT1=%d",MT1);switch(M2){case1:MT2=D2;break;case2:MT2=31+D2;break;case3:MT2=59+D