The Office Uchida, School of Computer

コンピュータを学習する人の学校:パソコンキャンパス、プログラミングキャンパス
ホームCプログラマ徹底養成コース初級編 第10問
文字の拡大

第10問:休日の判定

問題:西暦年、月、日を入力し、その日が国民の休日かどうかを判定し、その祝日の名前を表示するプログラムを作成してください。

国民の休日は次の表に示すとおりです。

国民の祝日に関する法律(昭和23年法律第178号)
日付祝日説明
1月1日元日年のはじめを祝う
1月第2月曜日成人の日おとなになったことを自覚し、みずから生き抜こうとする青年を祝いはげます
政令で定める日建国記念日建国をしのび、国を愛する心を養う(2月11日)
春分日春分の日自然をたたえ、生物をいつくしむ
4月29日みどりの日自然に親しむとともにその恩恵に感謝し、豊かな心をはぐくむ
5月3日憲法記念日日本国憲法の施行を記念し、国の成長を期する
5月4日国民の休日その前日及び翌日が「国民の祝日」である日
5月5日こどもの日こどもの人格を重んじ、こどもの幸福をはかるとともに、母に感謝する
7月第3月曜日海の日海の恩恵に感謝するとともに、海洋国日本の繁栄を願う
9月第3月曜日敬老の日多年にわたり社会につくしてきた老人を敬愛し、長寿を祝う
秋分日秋分の日祖先をうやまい、なくなった人々をしのぶ
10月第2月曜日体育の日スポーツにしたしみ、健康な心身をつちかう
11月3日文化の日自由と平和を愛し、文化をすすめる
11月23日勤労感謝の日勤労をたっとび、生産を祝い、国民たがいに感謝しあう
12月23日天皇誕生日天皇の誕生日を祝う

「春分日」及び「秋分日」は、具体的な日時が定義されておりません。 実際には、国立天文台が、毎年2月に翌年の「春分日」と「秋分日」を官報で公表していますが、次の計算式で 簡易的に計算することが可能です。sが春分の日、aが秋分の日となります。つまり、3月s日が春分の日、9月a日が秋分の日となります。

国立天文台が正式に発表している春分の日・秋分の日は、 こちらのページをご覧下さい。

参考のために、実行例を示します。

休日の判定を行います。
年>>>2006
月>>>1
日>>>9
w=0
1月9日は、一般の日です。
休日の判定を行います。
年>>>2006
月>>>1
日>>>9
1月9日は、成人の日です。

学習ポイント
  1. 複雑なif文の書き方に慣れる
  2. 多少複雑なロジックの構築に慣れる

本問題に対するFAQ

質問1:官報って何ですか。

 官報は、国が発行する唯一の機関紙です。国の広報、国民への広告のために使われています。 詳しくはこちらからどうぞ。

質問2:「1月第2月曜日」はどのように判断すればよいのですか。

 まず、月が1で曜日が月曜であることを確認します。曜日はゼラーの公式を用いればよいでしょう。 ゼラーの公式については、第1ヒントをご覧下さい。そして、1月の月曜日であれば、日にちが8から14であれば、第2月曜日です。