Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/* Das folgende JavaScript wird für alle Benutzer geladen. */
// == Goreanische runde Uhr ==
mw.loader.using(['mediawiki.util'], function () {
const IHN_PER_EHN = 80;
const EHN_PER_AHN = 40;
const AHN_PER_DAY = 20;
const IHN_PER_AHN = IHN_PER_EHN * EHN_PER_AHN;
const IHN_PER_DAY = IHN_PER_AHN * AHN_PER_DAY;
const SEC_PER_IHN = 86400 / IHN_PER_DAY;
function getGoreanTime() {
const now = new Date();
const midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate());
const elapsed = (now - midnight) / 1000;
const totalIhn = elapsed / SEC_PER_IHN;
const dayIhn = ((totalIhn % IHN_PER_DAY) + IHN_PER_DAY) % IHN_PER_DAY;
const ahnIndex = Math.floor(dayIhn / IHN_PER_AHN);
const rest1 = dayIhn % IHN_PER_AHN;
const ehn = Math.floor(rest1 / IHN_PER_EHN);
const ihn = rest1 % IHN_PER_EHN;
const ahn = ahnIndex + 1;
return { ahnIndex, ahn, ehn, ihn };
}
function updateGoreanClock() {
const handAhn = document.getElementById("handAhn");
const handEhn = document.getElementById("handEhn");
const handIhn = document.getElementById("handIhn");
if (!handAhn) return;
const time = getGoreanTime();
const angleAhn = ((time.ahnIndex + time.ehn/40 + time.ihn/3200) / 20) * 360;
const angleEhn = ((time.ehn + time.ihn/80) / 40) * 360;
const angleIhn = (time.ihn / 80) * 360;
handAhn.style.transform = `translate(-50%, -100%) rotate(${angleAhn}deg)`;
handEhn.style.transform = `translate(-50%, -100%) rotate(${angleEhn}deg)`;
handIhn.style.transform = `translate(-50%, -100%) rotate(${angleIhn}deg)`;
document.getElementById("digitalAhn").textContent = "Ahn " + String(time.ahn).padStart(2, "0");
document.getElementById("digitalEhn").textContent = "Ehn " + String(time.ehn).padStart(2, "0");
document.getElementById("digitalIhn").textContent = "Ihn " + String(Math.floor(time.ihn)).padStart(2, "0");
const info = document.getElementById("ahnInfo");
if (time.ahn === 10) info.textContent = "10. Ahn – Goreanischer Mittag";
else if (time.ahn === 20) info.textContent = "20. Ahn – Goreanische Mitternacht";
else info.textContent = time.ahn + ". Ahn des goreanischen Tages";
}
function initGoreanClock() {
if (!document.getElementById("gorClock")) return;
updateGoreanClock();
setInterval(updateGoreanClock, 150);
}
mw.hook('wikipage.content').add(initGoreanClock);
});