#include <stdio.h> /* 曜日の列挙型の宣言 */ enum week {SUN, MON, TUE, WED, THU, FRI, SAT}; enum week youbi( int y, int m, int d ); int main( void ) { int yy, mm, dd; enum week w; printf( "西暦を入力しなさい" ); scanf( "%d", &yy ); printf( "月を入力しなさい" ); scanf( "%d", &mm ); printf( "日を入力しなさい" ); scanf( "%d", &dd ); /* 曜日の算出 */ w = youbi( yy, mm, dd ); printf( "%d年%d月%d日は", yy, mm, dd ); switch( w ) { case SUN: printf( "日曜日です\n" ); break; case MON: printf( "月曜日です\n" ); break; case TUE: printf( "火曜日です\n" ); break; case WED: printf( "水曜日です\n" ); break; case THU: printf( "木曜日です\n" ); break; case FRI: printf( "金曜日です\n" ); break; case SAT: printf( "土曜日です\n" ); break; default: printf( "エラーです\n" ); } return 0; } /*** 曜日取得関数 ***/ enum week youbi( int y, int m, int d ) { int w; if( m == 1 || m == 2 ) { y = y - 1; m = m + 12; } /* Zellerの公式 */ w = ( 5 * y/4 - y/100 + y/400 + ( 26 * m + 16 ) /10 + d ) % 7; return ( enum week ) w; }
▼戻る▼
「初心者のためのポイント学習C言語」 Copyright(c) 2000-2004 TOMOJI All Rights Reserved