有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD。
输出每组数据输出一行,即日期差值。
样例输入20130101
20130105
5
思路#include#include //{平年某月天数,闰年某月天数} int month[13][2] = { {0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31} }; bool isRunNian(int year){ bool flag = (year%4==0&&year%100!=0)||(year%400 == 0); return flag; } int main(int argc, char *argv[]) { int time1,year1,month1,day1; int time2,year2,month2,day2; //允许多组数据 //exmple:20210103;20250202 while((scanf("%d%d",&time1,&time2)) != EOF){ //始终让time1 time2){ int temp = time1; time1 = time2; time2 = temp; } year1 = time1/10000,month1 = time1%10000/100,day1 = time1%100; year2 = time2/10000,month2 = time2%10000/100,day2 = time2%100; int ans = 1; //如果 (year1 = year2)&&(month1=month2)&&(day1==day2),判断终止 //倒序考虑 while((year1 month[month1][isRunNian(year1)]){ day1 = 1; month1++; } if(month1 == 13){ month1=1; year1++; } ans++; } printf("%d",ans); } return 0; }



