【JavaScript】「西暦」を「和暦」に変換&表示(例:1976年→昭和51年)
はじめに
「西暦」を「和暦(元号)」に変換・表示するJavaScriptです。
《 もくじ 》
■ 和暦の期間
■ 西暦→和暦 変換の例
■ JavaScriptコード
■ 和暦の期間
[明治]1868年09月08日~1912年07月30日
[大正]1912年07月30日~1926年12月25日
[昭和]1926年12月25日~1989年01月07日
[平成]1989年01月08日~2019年04月30日
[令和]2019年05月01日~
※ 1912年07月30日は「明治45年」でも「大正元年」でもある。
※ 1926年12月25日は「大正15年」でも「昭和元年」でもある。
《 関連情報 》
・ 元号西暦対照表 - 国立公文書館 アジア歴史資料センター
https://www.jacar.archives.go.jp/apps/help/chronological_table.html
■ 西暦→和暦 変換の例
・ 1900年 → 明治33年
・ 1919年 → 大正8年
・ 1976年 → 昭和51年
・ 2000年 → 平成12年
・ 2020年 → 令和2年
■ JavaScriptコード
window.onload = function() {
// ** [入力] 変換したい「西暦(year)」「月日(day)」を入力
let year = "1976"; // 例:1976年
let day = "0101"; // 例:1月1日
// ** [作成] 「西暦(year)」「月日(day)」を繋げて「年月日(date)」を作成
let date = year + day;
// ** [分割] 「月日(day)」を「月」と「日」に分割
// ** [削除] 「月」や「日」の数字の先頭が0の場合(例:01月)、0を削除(例:1月)
day = day.slice(0,2).replace(/^0/gim, "") + "月" + day.slice(2,4).replace(/^0/gim, "") + "日";
// ** [分岐] 「年月日」の数値で時代を判定
// ** [明治] 1868年09月08日~1912年07月30日 ※最終日は大正でもあるため当項目では除外
if ( ((18680908 <= date) && (date <= 19120730)) && (19120730 != date) ){
date = ("明治" + (year - 1868 + 1) + "年").replace(/明治1年/gim, "明治元年") + day;
// ** [明治][大正] 1912年07月30日
} else if ( 19120730 == date ) {
date = "明治45年(大正元年)" + day;
// ** [大正] 1912年07月30日~1926年12月25日 ※最終日は昭和でもあるため当項目では除外
} else if ( ((19120730 <= date) && (date <= 19261225)) && (19261225 != date) ){
date = ("大正" + (year - 1912 + 1) + "年").replace(/大正1年/gim, "大正元年") + day;
// ** [大正][昭和] 1926年12月25日
} else if ( 19261225 == date ) {
date = "大正15年(昭和元年)" + day;
// ** [昭和] 1926年12月25日~1989年01月07日
} else if ( (19261225 <= date) && (date <= 19890107) ) {
date = ("昭和" + (year - 1926 + 1) + "年").replace(/昭和1年/gim, "昭和元年") + day;
// ** [平成] 1989年01月08日~2019年04月30日
} else if ( (19890108 <= date) && (date <= 20190430) ) {
date = ("平成" + (year - 1989 + 1) + "年").replace(/平成1年/gim, "平成元年") + day;
// ** [令和] 2019年05月01日~
} else if ( 20190501 <= date ) {
date = ("令和" + (year - 2019 + 1) + "年").replace(/令和1年/gim, "令和元年") + day;
// ** [それ以外の年]
} else {
date = "明治~令和の以外の年号には対応していません。";
}
// ** [表示] WEBブラウザのコンソール画面に結果を表示
console.log(date);
};(text)
◇ ◇ ◇
《 過去に作成したnoteの記事リスト 》
https://note.com/text_sakura/n/na2cd73291236
《 記事についてのお問い合わせ先 》
text.sakura.note@gmail.com
※ 添付ファイルが含まれるメールは受け取ることができません。
※ テキストのみでお願いいたします。
いいなと思ったら応援しよう!
読んでくれてありがとうございます 😄 このnoteでは「トークテーマ一覧」「note記事テーマ一覧」「配信企画一覧」など、まとめ記事を中心に書いています ✏️ 役に立ちそうな記事がありましたら、自由にご利用ください ☕ 記事一覧は『サイトマップ』で見られます 📄