県立広島大学公開講座

表計算ソフトを使って
万年カレンダーを作ろう!
県立広島大学 経営情報学部
経営情報学科 小川仁士
平成20年8月23日
平成20年度 県立広島大学公開講座
1
暦について
太陽暦・・・1年の長さを太陽の動きによって決める
 太陰暦・・・1月の長さを月の動きによって決める


太陽太陰暦・・・1年の長さを太陽の動きに調整する
※日本では、明治5年までは「太陽太陰暦」を使用していた
→ 「旧暦」
平成20年8月23日
平成20年度 県立広島大学公開講座
2
暦について

太陽太陰暦について





平成20年8月23日
新月から新月までを1月とし、1月は平均すると約29.5日
通常1月は、29日(「小の月」)と30日(「大の月」)
12ヶ月を1年とすると、1年が約355日となり太陽の周期
に比べ10日ほど短い
これを調整するために設けられているのが、「閏月」
「閏月」のある年は1年が13ヶ月、だいたい3年に1度の
割合で閏月が存在
平成20年度 県立広島大学公開講座
3
暦について
表1 日本で使われていた暦法
平成20年8月23日
平成20年度 県立広島大学公開講座
4
暦について

太陽暦について



1年を太陽の動きに合わせ365日とする
実際には太陽の周期は、約365.2422日なので、これを
調整する必要が出る
これを調整するために設けられているのが、「閏年」
平成20年8月23日
平成20年度 県立広島大学公開講座
5
暦について

「閏年」の設け方

「ユリウス暦」
 ・・・4年に1度「閏年」を設け366日とする
 約130年毎に1日ずれが生じる

「グレゴリオ暦」
 ・・・「ユリウス暦」でいう「閏年」のうち、100で割り切れるが
400では割り切れない年は「平年」とする
 例:2000年は「閏年」、2100年は「平年」
平成20年8月23日
平成20年度 県立広島大学公開講座
6
暦について
現在使われている「太陽暦」
図1 グレゴリオ暦の平年と閏年の関係
平成20年8月23日
平成20年度 県立広島大学公開講座
7
暦について

現在の暦について → 「新暦」

明治5年(1872)の「改暦の布告」
 太陽暦(ユリウス暦)に合わせた

明治31年(1898)の「閏年に関する勅令」
 太陽暦(グレゴリオ暦)に合わせた
平成20年8月23日
平成20年度 県立広島大学公開講座
8
万年カレンダー作成(ガイダンス)

使用するソフトウェア



OS・・・Microsoft Windows XP
表計算ソフト・・・Microsoft Excel 2003
万年カレンダーの基本仕様



平成20年8月23日
明治33年(1900)1月以降のカレンダー
年月を指定して、その月のカレンダーを表示
画像を取り込んで、カレンダーを装飾
平成20年度 県立広島大学公開講座
9
万年カレンダー作成(ガイダンス)

その月の1日の曜日と日数が分かれば、どんな年月の
カレンダーでも簡単に作成できる

1日の曜日の調べ方

1.
2.
3.
4.
5.
平成20年8月23日
西暦1900年1月1日は月曜日 ← これを利用する
西暦1年1月1日からその年の1月1日までの日数(a)を調べる
西暦1年1月1日から西暦1900年1月1日までの日数(b)を調
べる
aの値からbの値を引き1を足すと・・・
西暦1900年1月1日からその年の1月1日までの日数(c)が求
まる
その年の1月1日からその月の1日までの日数(d)を調べる
c+dを7で割り余りを求めると、余り0なら日曜日、余り1なら月
曜日、余り2なら火曜日、・・・、余り6なら土曜日である
平成20年度 県立広島大学公開講座
10
万年カレンダー作成(ガイダンス)

日数計算で「閏年」を考慮に入れる(その1)

西暦1年1月1日からある年の1月1日までの日数
ある年をxとしたとき、「閏年」を考慮しなければ、
(x-1)×365+1日になるが・・・
 x-1年間のうち、「閏年」があった数だけ日数が増える
 x-1年間で何回「閏年」があったのか?

4で割り切れる年は(一応)「閏年」なので、(x-1)÷4 ← e
2. 100で割り切れる年はそこから除くので、(x-1)÷100 ← f
3. 400で割り切れる年は入れるので、(x-1)÷400 ← g
4. e-f+gだけの日数が加わることになる
1.
注)上記の割り算はすべて端数は切捨てる
平成20年8月23日
平成20年度 県立広島大学公開講座
11
万年カレンダー作成(ガイダンス)

日数計算で「閏年」を考慮に入れる(その2)

その年の1月1日からその月の1日までの日数
前の月の終わりまでの累積日数を計算して1を足す
 2月を含む場合は、その年が「閏年」かどうかによって、
28日か29日かいずれかを足す
 その年が「閏年」かどうかを判定するには?

4で割り切れない年は「平年」である
2. (4で割り切れ、)100で割り切れない年は「閏年」である
3. (4で割り切れ、かつ、100でも割り切れ、)400で割り切れる年
は「閏年」である。そうでなかったら、「平年」である。
1.
平成20年8月23日
平成20年度 県立広島大学公開講座
12
万年カレンダー作成(ガイダンス)

カレンダーの表示パターンについて
日曜から始まるとき
土曜から始まるとき
注)どちらも最短28日で終わるパターンがある
1行目は1日をどこから始めるか条件判断が必要
 2~4行目は前の日の日付を1増やしていけば良い
 5行目、6行目はどこでその月の終わりの日付になる
か条件判断が必要

平成20年8月23日
平成20年度 県立広島大学公開講座
13
万年カレンダー作成(ガイダンス)

入力フォームについて




平成20年8月23日
ユーザインタフェースを用いることで、簡便な月日入力ができるようにす
る
西暦以外に対応する和暦の情報もコメントとして表示することにより、年
月の選択をしやすくする
入力された月の情報を元にカレンダーに取り込む画像を自動的に選択
する
印刷結果を事前に確認し、すぐに印刷できるようにする
平成20年度 県立広島大学公開講座
14
それでは、手順書に従って万年カレンダー
を作っていきましょう!
平成20年8月23日
平成20年度 県立広島大学公開講座
15