日本と世界の暦を一致させるアプリ
日付を入力してください:
以下が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>
```
ジョークとして、アプリが「タイムトラベルできます!」と表示して、西暦と元号を行き来できるようにしたり、「昔はこんなに面倒だったのか…(遠い目)」とコメントを入れたりすることができます。