元号 → 西暦 変換
西暦 2019 年
今から 7 年前
今から 7 年前
コードエディター 本文
<div class="container">
<h2>元号 → 西暦 変換</h2>
<label>元号を選択</label>
<select id="gengo">
<option value="2018">令和</option>
<option value="1988">平成</option>
<option value="1925">昭和</option>
<option value="1911">大正</option>
<option value="1867">明治</option>
</select>
<label>年を入力</label>
<input type="number" id="year" value="1" min="1">
<div class="result-box">
<span class="seireki-output" id="outputSeireki">西暦 2019 年</span>
<span class="diff-output" id="outputDiff">今から 7 年前</span>
</div>
</div>
カスタムJavaScript
const gengoSelect = document.getElementById('gengo');
const yearInput = document.getElementById('year');
const outputSeireki = document.getElementById('outputSeireki');
const outputDiff = document.getElementById('outputDiff');
function update() {
const currentYear = new Date().getFullYear(); // 現在の年
const baseYear = parseInt(gengoSelect.value);
const inputYear = parseInt(yearInput.value);
if (!isNaN(inputYear) && inputYear > 0) {
const targetYear = baseYear + inputYear;
outputSeireki.textContent = `西暦 ${targetYear} 年`;
// 経過年数の計算
const diff = currentYear - targetYear;
if (diff > 0) {
outputDiff.textContent = `今から ${diff} 年前`;
outputDiff.style.color = "#555";
} else if (diff < 0) {
outputDiff.textContent = `今から ${Math.abs(diff)} 年後`;
outputDiff.style.color = "#e67e22"; // 未来はオレンジ
} else {
} else {
outputDiff.textContent = "今年は、この年です";
outputDiff.style.color = "#27ae60"; // 今年は緑
}
} else {
outputSeireki.textContent = "---";
outputDiff.textContent = "正しい年を入力してください";
}
}
gengoSelect.addEventListener('change', update);
yearInput.addEventListener('input', update);
// 初期表示
update();
カスタムCSS
select, input { padding: 12px; margin: 8px 0 10px 0; width: 100%; box-sizing: border-box; border: 1px solid #ddd; border-radius: 6px; font-size: 1rem; }
.result-box { background: #e7f3ff; padding: 10px; border-radius: 8px; text-align: center; }
.seireki-output { display: block; font-size: 1.5rem; font-weight: bold; color: #007bff; }
.diff-output { display: block; }
