[ create a new paste ] login | about

Link: http://codepad.org/7UVONvby    [ raw code | fork ]

C, pasted on Jul 20:
#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;
}


Create a new paste based on this one


Comments: