急招程序员,百度关键词seo外包,重庆网站服务器,山东最近出现大量感染病题目 有两个日期#xff0c;求两个日期之间的天数#xff0c;如果两个日期是连续的我们规定他们之间的天数为两天。 输入 输入包含多组测试数据。
每组数据占两行#xff0c;分别表示两个日期#xff0c;形式为 YYYYMMDD。 输出 每组数据输出一行#xff0c;即日期差值。…题目 有两个日期求两个日期之间的天数如果两个日期是连续的我们规定他们之间的天数为两天。 输入 输入包含多组测试数据。
每组数据占两行分别表示两个日期形式为 YYYYMMDD。 输出 每组数据输出一行即日期差值。 样例 输入样例 20110412 20110422 输出样例 11 代码
#includeiostream
using namespace std;int st,ed;
int months[13]{0,31,28,31,30,31,30,31,31,30,31,30,31};bool isDate(int date){int year date/10000;int month (date %10000) /100;int day date % 100;if(month12 || month1 || day 0 || day31) return false;if(month!2) return daymonths[month];if(month2){if((year%40 year%100!0) || year%4000) return day29;return day28;}return false;
}int get(int year){if((year%40 year%100!0) || year%4000) return 366;return 365;
}int main(){while(scanf(%d%d,st,ed)!-1){int res 0;if(sted) swap(st,ed);int y1 st / 10000,y2 ed/10000;for(int ist;i/10000y11;i){if(isDate(i)) res;}for(int iy11;iy2;i){res get(i);}for(int ied1;i/10000y21;i) if(isDate(i)) res--;printf(%d\n,res);}
}