#include<stdio.h>
#include<math.h>
int main () {
int y[2] = {0},m[2] = {0},d[2] = {0},total[2] = {0};
int month_day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
while(scanf("%d %d %d %d %d %d",&y[0],&m[0],&d[0],&y[1],&m[1],&d[1]) != EOF) {
for(int j = 0; j < 2; j++) {
total[j] = 0;
for(int i = 0; i < y[j]; i++) {
if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
total[j] += 366;
} else {
total[j] += 365;
}
}
if(y[j] % 4 == 0 && y[j] % 100 != 0 || y[j] % 400 == 0) {
for(int i = 1; i < m[j]; i++) {
if(i == 2) {
total[j] += month_day[i] + 1;
} else {
total[j] += month_day[i];
}
}
} else {
for(int i = 1; i < m[j]; i++) {
total[j] += month_day[i];
}
}
}
printf("%d\n",abs(total[0] + d[0] - total[1] - d[1]));
}
return 0;
}
請不要跟我一樣以為單數都是31天,被題目搞死這裡XDD(罰寫),所以我們先寫出月份的陣列
有兩行輸入所以for迴圈就到2
我們先計算0到輸入的那年,所有天數的總和(不包含當年,這點很重要),先簡單區分是否閏年,是就加366否就365
接者計算月份,一樣計算1月到那月,所有天數的總和(不包含當月,這點很重要),先簡單區分是否為閏年是的話就在i為2的時候多加1
最後把日期加上去,在兩數相減,記得使用abs(),因為我們不知道結果會不會為負數
有誤還請回覆我~