日本と世界の暦を一致させるアプリ
日付を入力してください:
以下がJavaScriptを使った日本と世界の暦を一致させるアプリの例です。セキュリティ脆弱性の問題がある場合は拒否しました。
```html
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>日本と世界の暦を一致させるアプリ</title>
</head>
<body>
	<h1>日本と世界の暦を一致させるアプリ</h1>
	<p>日付を入力してください:</p>
	<input type="date" id="date-input">
	<button onclick="convert()">変換する</button>
	<p id="result"></p>
	<script>
		// 日本の元号を西暦に変換して返す関数
		function convertToAD(date) {
			let era = date.substring(0, date.indexOf("年"));
			let year = Number(date.substring(date.indexOf("年")+1, date.indexOf("年")+3));
			let month = Number(date.substring(date.indexOf("年")+4, date.indexOf("月")));
			let day = Number(date.substring(date.indexOf("月")+1, date.indexOf("日")));
			let gengo = {
				"明治": 1868,
				"大正": 1912,
				"昭和": 1926,
				"平成": 1989,
				"令和": 2019
			};
			let ad = gengo[era] + year;
			if (era == "明治" && year <= 45) {
				ad -= 1;
			}
			return new Date(ad, month-1, day);
		}
		// 世界の西暦を日本の元号に変換して返す関数
		function convertToGengo(date) {
			let era;
			let year = date.getFullYear();
			let month = date.getMonth() + 1;
			let day = date.getDate();
			if (year >= 2019) {
				era = "令和";
				year -= 2018;
			} else if (year >= 1989) {
				era = "平成";
				year -= 1988;
			} else if (year >= 1926) {
				era = "昭和";
				year -= 1925;
			} else if (year >= 1912) {
				era = "大正";
				year -= 1911;
			} else {
				era = "明治";
				year -= 1867;
			}
			return era + year + "年" + month + "月" + day + "日";
		}
		// 変換ボタンが押されたときの処理
		function convert() {
			let dateInput = document.getElementById("date-input").value;
			let convertedDate = convertToAD(dateInput);
			let result = "西暦:" + convertedDate.toLocaleDateString() + "<br>";
			result += "元号:" + convertToGengo(convertedDate);
			document.getElementById("result").innerHTML = result;
		}
	</script>
</body>
</html>
```
ジョークとして、アプリが「タイムトラベルできます!」と表示して、西暦と元号を行き来できるようにしたり、「昔はこんなに面倒だったのか…(遠い目)」とコメントを入れたりすることができます。
