- 2 名前:RUBY [05/01/24 22:18:29 ]
- 年月を与えたとき、下のようなカレンダーを出力するプログラムを作る。
西暦1年1月1日は月曜日である。4年に一度閏年がある。しかし、100の倍数の年は閏年ではない。しかし、400の倍数の年は閏年である。 平年の1月1日が火曜日であったとすると次年の1月1日は水曜日である。 従って、日、月、・・・、土を、0、1、・・・、6と数字で表すと、西暦n年の1月1日の曜日kは、 n+(n-1)/4-(n-1)/100+(n-1)/400 を7で割った余りである。k=n % 7又2月の日数mは、 m=28+n/4*4/n-n/100*100/n+n/400*400/n と表せる。ここで割り算は全て整数同士の割り算(切り捨て)である。 1.2月以外の日数を与える。 2.作成したいカレンダーの年(n)と月(m)を与える。 3.2月の日数を計算する。 28+n/4*4/n-n/100*100/n+n/400*400/n 4.1月1日の曜日を表す数字(0、1、・・・、6)を計算する。 (n+(n-1)/4-(n-1)/100+(n-1)/400) % 7 5.今対象としている月の第1日目の曜日を、上で求めた1月1日の曜日を表す数値に、 今対象とする月の前の月までの日数を加算し、7で割った余りとして求める。 6.下のようなカレンダーをHTMLの表で出力する。 1989年 4月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|

|