見出し画像

【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
添付ファイルが含まれるメールは受け取ることができません。
テキストのみでお願いいたします。

いいなと思ったら応援しよう!

text.sakura.ne.jp【公式】 読んでくれてありがとうございます 😄 このnoteでは「トークテーマ一覧」「note記事テーマ一覧」「配信企画一覧」など、まとめ記事を中心に書いています ✏️ 役に立ちそうな記事がありましたら、自由にご利用ください ☕ 記事一覧は『サイトマップ』で見られます 📄

この記事が参加している募集