convert / date
西暦・和暦変換
西暦(グレゴリオ暦)と和暦(令和・平成・昭和・大正・明治)を相互変換します。元号の境界日を正確に処理します。
令和8年3月16日
使い方
01- 「西暦 → 和暦」タブで年月日を入力すると、対応する和暦が表示されます
- 出力形式は「漢字(令和6年)」と「英字(R6)」から選択できます
- 「和暦 → 西暦」タブでは元号・年・月・日を入力して西暦に変換できます
実装コード
02元号テーブルを新しい順に並べ、数値比較で境界判定します。new Date() を使わずタイムゾーン問題を回避しています。
const ERAS = [
{ kanji: '令和', alpha: 'R', start: [2019, 5, 1], baseYear: 2019 },
{ kanji: '平成', alpha: 'H', start: [1989, 1, 8], baseYear: 1989 },
{ kanji: '昭和', alpha: 'S', start: [1926, 12, 25], baseYear: 1926 },
{ kanji: '大正', alpha: 'T', start: [1912, 7, 30], baseYear: 1912 },
{ kanji: '明治', alpha: 'M', start: [1868, 1, 25], baseYear: 1868 },
] as const
export function toWareki(
year: number, month: number, day: number, style: 'kanji' | 'alpha'
): WarekiResult | null {
for (const era of ERAS) {
const [sy, sm, sd] = era.start
if (compareDates(year, month, day, sy, sm, sd) >= 0) {
const eraYear = year - era.baseYear + 1
// ...
return { era, year: eraYear, yearLabel, full }
}
}
return null // 明治元年より前
}よくある使用例・注意点
03元号の境界について
明治・大正・昭和・平成・令和はそれぞれ特定の日付から始まります。例えば昭和は1926年12月25日から、平成は1989年1月8日からです。このツールはその境界日を正確に処理します。
元年(1年目)の表示
漢字形式では1年目を「元年」と表示します(例:令和元年)。英字形式では「R1」のように数字1で表示します。
対応範囲
明治元年(1868年1月25日)以降の日付に対応しています。それより前の日付を入力するとエラーが表示されます。
春分・秋分との組み合わせ
祝日計算(春分の日・秋分の日)との組み合わせが必要な場合は、「日本の祝日計算」ツールも合わせてご利用ください。
関連ツール
04ソースコード
05このツールのソースコード(テストコードを含む)はGitHubで公開しています。MITライセンスで自由に利用・改変できます。
GitHub でコードを見る →