Skip to content

okinawarb/problem-01_japanese-era-calendar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

西暦を和暦に変換する | Japanese Era Calendar

English follows Japanese.

問題

書類などに日付を書くとき、「2010年」や「平成24年」といった2つの年を表現する方法があります。これは、国によって年を表現をする方法が異なるからです。

このセッションでは、「2013年」や「1987年」といった西暦で表現された日付を、「平成24年」や「昭和62年」といった和暦に変換するプログラムを書いてください。このプログラムは、例えば、2012-10-20という入力が与えられた場合、平成24年10月20日を出力します。なお、明治以前の日付に関しては、すべて明治を元号として表記してよいものとします。

なお、西暦と和暦の対応表については、次の表を参考にしてください(引用もと)。

年号 西暦 改元日 備考
明治 1868~1912 9/8 明治元年は1/1から。明治6年以降は太陽暦
大正 1912~1926 7/30
昭和 1926~1989 12/25 昭和64年は1月7日まで
平成 1989~ 1/8
  • 明治5年12月2日まで太陰太陽暦(旧暦)を使用。
  • 明治5年11月9日の「太政官布告」により、太陽暦(グレゴリオ暦)に改暦され、「明治5年12月2日」の翌日が「明治6年1月1日」。 「明治改元の布告」、大正や昭和の「改元の詔書」によると 明治改元の詔書が出されたのは慶応4年9月8日だが、明治元年は「1月1日」から、即ち9月8日まで」は慶応4年でも明治元年でも。「明治45年7月30日」と「大正元年7月30日」及び「大正15年12月25日」と「昭和元年12月25日」は、ともに存在。
  • 「元号を改める政令(昭和64年1月7日)」によると  昭和64年は「1月7日」までで、平成元年は「1月8日」から。

応用問題 - ショートコーディング

出題された問題を、出来るだけ短い文字数で書くプログラムを書いてみましょう!例えば、if 文ではなく && を使うことで、プログラムはより短くなります。また、datetime オブジェクトに変換しなくても...!?

Problem (English)

If you've ever had to fill out paperwork in Japan, you know that the country uses two systems for counting dates: the western Gregorian calendar, and the Japanese era calendar scheme, which uses the combination of the reigning Emperor's name and year since his birth.

Write a program that takes a Gregorian date as an input, give the Japanese era date as an output. For example, with 2012-10-20 as an input, the output would be 平成24年10月20日.

To get you started, I've reproduced part of a table of era information.

年号 西暦 改元日 備考
明治 1868~1912 9/8 明治元年は1/1から。明治6年以降は太陽暦
大正 1912~1926 7/30
昭和 1926~1989 12/25 昭和64年は1月7日まで
平成 1989~ 1/8
  • 明治5年12月2日まで太陰太陽暦(旧暦)を使用。
  • 明治5年11月9日の「太政官布告」により、太陽暦(グレゴリオ暦)に改暦され、「明治5年12月2日」の翌日が「明治6年1月1日」。 「明治改元の布告」、大正や昭和の「改元の詔書」によると 明治改元の詔書が出されたのは慶応4年9月8日だが、明治元年は「1月1日」から、即ち9月8日まで」は慶応4年でも明治元年でも。「明治45年7月30日」と「大正元年7月30日」及び「大正15年12月25日」と「昭和元年12月25日」は、ともに存在。
  • 「元号を改める政令(昭和64年1月7日)」によると  昭和64年は「1月7日」までで、平成元年は「1月8日」から。

Extensions - Short Coding (a.k.a. Code Golf)!

Nicely done! From now, let's give a try to make the program you wrote shorter as possible as you can! For example, use && operator instead of if condition. Also, you don't have to use date or time to compare. Did you notice that?

About

A problem for the 1st session

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published