月の日数計算


関数名
daysOfMonth  西暦年号と月からその月の日数を算出する
形式
int daysOfMonth(int year, int month);
引数
year   西暦で表される年号
month  月の値 (1 〜 12)
関数値
その月の日数。たとえば、1月であれば31、4月であれば30。
注意事項
・閏年にも対応している
・引数の月の値が1〜12以外であれば、1月とみなす。

用例(daysOfMonth-test.c
daysOfMonth(1996, 2);

プログラム(daysOfMonth.c
int daysOfMonth(int year, int month)
{
    static int days[12] = {
        31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

    if (month < 1 || month > 12) month = 1;

    if (month == 2) return days[1] +
          (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
    else return days[month-1];
}
説明

関連関数
閏年の判定