《演算法筆記》3.4小節——入門模擬->日期處理 問題 A: 日期差值
阿新 • • 發佈:2018-12-13
把握今天,才能擁有明天!
難受~~~
#include <stdio.h> 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}}; int isLeap(int x){ if ((x % 4 == 0 && x % 100 != 0) || (x % 400 == 0)){ return 1; }else return 0; } int main() { int num1,num2,temp; int year1,year2,month1,month2,day1,day2; while(scanf("%d%d",&num1,&num2) != EOF){ if(num1 > num2){ temp = num1; num1 = num2; num2 = temp; } year1 = num1 / 10000,month1 = num1 % 10000 / 100,day1 = num1 % 100; year2 = num2 / 10000,month2 = num2 % 10000 / 100,day2 = num2 % 100; int cnt = 1; while(year1 < year2 || month1 < month2 || day1 < day2){ day1++; if(day1 == month[month1][isLeap(year1)] + 1){ month1++; day1 = 1; } if(month1 == 13){ year1++; month1 = 1; } cnt++; } printf("%d\n",cnt); } return 0; }