#include <stdio.h>
int uruu(int y);
int monthday(int y, int m);
int main(){
int year_a, month_a, day_a;
int year_b, month_b, day_b;
int days;
int i;
days = 0;
printf("日数計算プログラム\n");
printf("数え始める西暦年月日を入力してください\n");
scanf("%d,%d,%d",&year_a, &month_a, &day_a);
printf("終わりの西暦年月日を入力してください\n");
scanf("%d,%d,%d",&year_b, &month_b, &day_b);
//ここに処理が入る
if (year_a == year_b) { // 同一年の時
if (month_a == month_b) { // 同一月の時
days = day_b - day_a;
} else { // 異なる月の時
days = monthday(year_a, month_a) - day_a;
for (i = month_a + 1; i < month_b; i++)
days += monthday(year_a, i); // 終了月の前月まで
days += day_b;
}
} else { // 異なる年の時
int j;
days = monthday(year_a, month_a) - day_a; // 開始月の末日まで
for (i = month_a + 1; i <= 12; i++)
days += monthday(year_a, i); // 開始年の末月まで
for (i = year_a + 1; i < year_b; i++)
for (j = 1; j <= 12; j++)
days += monthday(i, j); // 終了前年の末月まで
for (i = 1; i < month_b; i++)
days += monthday(year_b, i); // 終了年の前月まで
days += day_b; // 終了日まで
}
printf("%d年%d月%d日から%d年%d月%d日までの日数は%d日です。\n",
year_a, month_a, day_a, year_b, month_b, day_b, days);
return 0;
}
int uruu(int y){
int ret;
// ここに処理が入る
ret = (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)? 1: 0; // 閏年の時は1
return ret;
}
int monthday(int y, int m){
int d;
// ここに処理が入る
int dy[2][12] = {
{31,28,31,30,31,30,31,31,30,31,30,31}, // 平年
{31,29,31,30,31,30,31,31,30,31,30,31} // 閏年
};
d = dy[uruu(y)][m-1];
return d;
}