「暦変換」の編集履歴(バックアップ)一覧はこちら
「暦変換」(2019/03/24 (日) 20:05:59) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#divclass(notice){
このページは古い設定に基いています。[[最新の暦変換機はこちらです。>http://na2co3.exp.jp/gsv-calendar/]]
}
大宇宙で使われてる各種暦の相互変換ができます。
#html2(){{
<div id="app-calendartrans"></div>
}}
#javascript(){{
(function() {
var calendars = [
{name: "シンテーア暦", days: 350, offset: 1312},
{name: "西暦", days: 365.242190402, offset: 2140.97736},
{name: "ガールン暦", days: 156.005235556, offset: 4681.676},
{name: "ロフィルナ暦", days: 365.242190402, offset: 1},
{name: "シャルカ暦", days: 637.069, offset: 2272.116},
{name: "ピリフィアー暦", days: 365.25, offset: 1665},
{name: "プロルド暦", days: 300, offset: 1807.8333},
{name: "クレデリア暦", days: 300, offset: -261.1667},
{name: "ドラゴニズム暦", days: 500, offset: 51.40000001},
{name: "カラ新暦", days: 405.625, offset: 1795.054},
{name: "ヌキ=ルノラドガ暦", days: 494.2, offset: 1825},
{name: "ダバーヤ暦", days: 249, offset: 5286}
];
var gregorian = 1;
var ie = !window.addEventListener;
if (ie) {
window.attachEvent("onload", init);
} else {
window.addEventListener("load", init);
document.addEventListener("DOMContentLoaded", init);
}
var inited = false;
var inputs, errorRanges;
function init() {
if (inited) return;
var container = document.getElementById("app-calendartrans");
container.style.lineHeight = "2";
var oninput, span;
inputs = [];
errorRanges = [];
for (var i = 0; i < calendars.length; i++) {
container.appendChild(document.createTextNode(calendars[i].name + " : "));
inputs[i] = document.createElement("input");
inputs[i].setAttribute("type", "text");
inputs[i].style.width = "6em";
oninput = (function(i) {
return function() {update(i);}
})(i);
if (ie) {
inputs[i].attachEvent("oninput", oninput);
inputs[i].attachEvent("onkeypress", oninput);
} else {
inputs[i].addEventListener("input", oninput);
inputs[i].addEventListener("keypress", oninput);
}
container.appendChild(inputs[i]);
container.appendChild(document.createTextNode("年 "));
span = document.createElement("span");
span.style.fontSize = "80%";
errorRanges[i] = document.createElement("span");
span.appendChild(errorRanges[i]);
container.appendChild(span);
container.appendChild(document.createElement("br"));
}
inputs[gregorian].value = (new Date()).getFullYear()
update(gregorian);
inited = true;
}
function update(id) {
var inputYear = inputs[id].value;
if (isNaN(inputYear)) return;
var inputMinDay = (inputYear - calendars[id].offset) * calendars[id].days;
var inputMaxDay = inputMinDay + calendars[id].days;
var minYear, maxYear
for (var i = 0; i < calendars.length; i++) {
if (id == i) {
errorRanges[i].innerText = "";
continue;
}
minYear = Math.floor((inputMinDay / calendars[i].days) + calendars[i].offset);
maxYear = Math.ceil((inputMaxDay / calendars[i].days) + calendars[i].offset) - 1;
inputs[i].value = minYear;
errorRanges[i].innerText = "(±0" + (minYear < maxYear ? " 〜 +" + (maxYear - minYear) : "") + "年)";
}
}
})();
}}
**注意点
それぞれの暦ごとに1年の時間が違うことなどが原因で、それぞれの年と年は綺麗には対応していない。
それを、暦変換器では (±0 〜 +1年) のような表記で表している。
例えばロフィルナ暦356年と入力すると、シンテーア暦1682(±0 〜 +1年)と出てくる。
これは、ロフィルナ暦365年1月1日の時点では、シンテーア暦1682年だが、ロフィルナ暦365年大晦日には、シンテーア暦ではもう正月を迎えていて1683年になっているということである。
大宇宙で使われてる各種暦の相互変換ができます。
[[最新の暦変換機はこちらです。>http://na2co3.exp.jp/gsv-calendar/]]