実際のツール画面で、用途を選び、入力し、変換結果を確認する流れ

書類に元号を書くとき、西暦は分かっていても、和暦では何年なのか迷うことがあります。
たまに必要になるので、そのときに調べられると便利だと思い、日付・元号ツールを作りました。
西暦と和暦の変換を中心に、元号対応表や日数・年齢の計算の使い方を紹介します。

日付・元号ツールを使う

西暦・和暦を変換する

「西暦から元号」では、分かっている情報に合わせて「年だけ」か「年月日」を選びます。
年だけなら、その年に使われる元号と期間を調べられます。

  • 「西暦から元号」を選びます。
  • 「入力するもの」を「年だけ」にして、2019を入力します。
  • 「変換する」を押し、結果を確認します。

2019年の結果は、平成31年と令和元年の2つです。
月日が分からない資料の年を調べるときは、表示された期間で候補を確認できます。
日付が分かる場合は「年月日」に切り替えると、その日の元号が分かります。
例えば、2019年4月30日は平成31年、翌5月1日は令和元年です。

和暦から調べたいときは「元号から西暦」を使います。
元号を選び、元号の年を入力して変換してください。
元年は「1」でも「元」でも入力できます。
「平成31年5月1日」のように、その元号の期間を外れる日付は変換せず、エラーを表示します。

元号対応表をまとめて見る

複数の年を見比べたいときは「元号対応表」を選び、開始年と終了年を入力します。
例えば2018〜2020年なら、平成から令和へ変わる前後を並べて確認できます。

実画面で2018〜2020年の対応表を表示し、2019年には平成と令和の両期間が並んでいる

表示は1回につき最大50年分です。
「今年の前後10年」は入力欄の範囲を設定するボタンなので、続けて「対応表を表示」を押してください。
「表をコピー」ではタブ区切りのテキストを取り出せるため、表計算ソフトへ貼り付けるときにも使えます。

日数・何日後の日付・年齢を調べる

「日付計算」では、2つの日付の間の日数と、指定日から何日後・何日前かを調べられます。

日付計算の実画面と、11月1日から8日は7日、開始日を含めると8日になる違い

2026年11月1日から11月8日までの差は7日です。
11月1日も1日目として数えたいときは「開始日を含める」を選ぶと、8日になります。
同じ日付同士も、通常は0日、開始日を含めると1日です。

「何日後・何日前」では、基準日と方向、日数を指定します。
例えば2024年2月28日の1日後は、うるう日の2月29日です。
日数には0〜100000の整数を入力できますが、計算結果もツールの対応期間内に収まる必要があります。

年齢は基準日と計算条件を確認する

「年齢」では、誕生日と「何日時点の年齢か」を入力して計算します。
「今日を入れる」を押すと、日本時間の今日の日付を基準日に設定できます。

架空の誕生日で計算した実画面。2月29日生まれを平年で扱う条件を開いている

2月29日生まれを平年にどう扱うかは、「2月29日生まれの計算方法」で選べます。
初期設定は3月1日で、2月28日への切替もできます。
例えば2000年2月29日生まれを2025年2月28日時点で調べると、3月1日扱いでは24歳、2月28日扱いでは25歳です。
結果にも選んだ条件を表示します。
法令上の年齢到達時刻や、制度ごとの資格を判定する機能ではありません。

改元年を扱うための仕組み

年の数字を引くだけでは、改元年の元号を1つに決められません。
このツールは、元号ごとの開始日・終了日と、入力された年や日付を照らし合わせています。

2019年の平成と令和の境界と、実際の変換結果。年だけなら両期間、年月日なら該当する元号を返す

年だけを入力したときは、1月1日〜12月31日の区間と重なる元号をすべて取り出します。
公開コードの計算処理では、次の条件で重なりを調べています。
firstは入力年の1月1日、lastは12月31日、era.startとera.endは元号の対応期間です。

ERAS.filter(era => era.start <= last && era.end >= first)

元号の開始日がその年の末日以前で、終了日がその年の初日以降なら、その年と重なります。
2019年は平成と令和が両方当てはまるため、それぞれの期間を表示します。
年月日を入力したときは、その日を含む元号を1つ探します。
自分で変換機能を作る際も、改元日の前日と当日、年だけの入力を分けて確かめると、結果の違いを追いやすくなります。

Laravelが入力欄やボタンを含む画面を配信し、変換・計算と結果表示はJavaScriptが担当します。
公開コードのlaravel/learning-appで、参考にしたい箇所に合わせて次のファイルを読めます。

参考にしたいことファイル
機能の選択、入力欄、結果の配置resources/views/tools/date-tools.blade.php
入力を受け取り、結果を表示する流れresources/js/date-tools.js
元号変換・日付・年齢の計算resources/js/date-tools-engine.js

利用前に確認したいこと

対応期間は1873年1月1日〜2100年12月31日です。
明治は6年からが対象で、それより前の旧暦の日付は変換できません。
未来の年は、現在の令和が続く場合の換算として表示します。

結果は「結果をコピー」、対応表は「表をコピー」で取り出せます。
ブラウザーの条件でコピーできない場合は、手動で選択できるテキスト欄が表示されます。
入力や結果をページを離れた後まで保持する機能はないため、必要な結果は先にコピーしてください。

計算はブラウザー内で行い、アプリは入力や結果を送信・保存しません。
ページでは第三者の広告を利用しているため、機密情報は入力しないでください。

ツールと公開コード

元号が必要になったら、西暦の年や日付を入力して調べられます。
年が分かる場合は「年だけ」、月日まで分かる場合は「年月日」を選んでみてください。
自分のツール制作では、公開コードの改元年の扱いや日付の計算を参考にできます。