dtime-js/dtime.js

195 lines
8.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* https://gitlab.com/zlax/dtime-js
* based on:
*
* REAL-TIME CLOCK (c) 2009 por Tiago Madeira (http://tiagomadeira.com/)
* Idealizado por Santaum (http://santaum.org/)
*
* All Hail Eris!
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
function az(x) {
if (x < 10)
return "0"+x;
return x;
}
function ly(Y) {
return (Y % 4 == 0 && !(Y % 100 == 0 && Y % 400 != 0));
}
function dy(D, M, Y) {
var dm = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if (ly(Y)) {
dm[1] = 29;
}
var d = D;
for (var i = 0; i < M-1; i++) {
d+= dm[i]
}
return d;
}
function dtime(gregorianDate) {
// Easter Island Winter Time Zone offset (-5*60*60*1000)
var date = new Date(gregorianDate.getTime()-18000000);
var D = date.getUTCDate();
var M = date.getUTCMonth()+1;
var Y = date.getUTCFullYear();
var d = dy(D, M, Y);
var sttiby = 0;
if (ly(Y)) {
if (d == 60) {
sttiby = 1;
} else if (d > 60) {
d--;
}
}
M = Math.floor(d/73);
D = d % 73;
if (D == 0) {
M--;
D = 73;
}
var ddaystr = dday(D,M,d,sttiby);
switch (M) {
case 0:
M = "Chaos";
break;
case 1:
M = "Discord";
break;
case 2:
M = "Confusion";
break;
case 3:
M = "Bureaucracy";
break;
case 4:
M = "Aftermath";
break;
default:
M = "fnord";
}
Y+= 1166;
if (sttiby) {
var ddatestr = "St. Tib's Day, "+Y+" YOLD";
} else {
var ddatestr = M+" "+az(D)+", "+Y+" YOLD";
}
var h = date.getUTCHours();
var m = date.getUTCMinutes();
var s = date.getUTCSeconds();
var ms = date.getUTCMilliseconds();
var e = h*3600000+m*60000+s*1000+ms;
var ds = Math.round(e/864);
h = Math.floor(ds/10000);
ds%= 10000;
m = Math.floor(ds/100);
ds%= 100;
s = ds;
var dtimestr = h+":"+az(m)+":"+az(s);
return [ddatestr, dtimestr, ddaystr];
}
function dday(day, season, yearday, sttiby) {
var day_list = ["Sweetmorn", "Boomtime", "Pungenday", "Prickle-Prickle", "Setting Orange"];
var dweekday = day_list[((yearday-1)%5)];
var ddaystr = dweekday;
var a_holiday = ["Mungday", "Mojoday", "Syaday", "Zaraday", "Maladay"];
var s_holiday = ["Chaoflux", "Discoflux", "Confuflux", "Bureflux", "Afflux"];
var m_holiday = ["Chaomas", "Discomas", "Confumas", "Buremas", "Afmas"];
var t_holiday = ["Chaosloth", "Discosloth", "Confusloth", "Buresloth", "Afsloth"];
var e_holiday = ["Mungeye", "Mojeye", "Syadeye", "Zareye", "Maleye"];
if (sttiby) ddaystr = "Celebrate St. Tib's Day";
else if (day == 5) ddaystr += ", Celebrate " + a_holiday[season];
else if (day == 23) ddaystr += ", Celebrate " + m_holiday[season];
else if (day == 27) ddaystr += ", Celebrate " + t_holiday[season];
else if (day == 50) ddaystr += ", Celebrate " + s_holiday[season];
else if (day == 73) ddaystr += ", Celebrate " + e_holiday[season];
else if (season == 0 && day == 8) ddaystr += ", Celebrate Death of Emperor Norton";
else if (season == 0 && day == 10) ddaystr += ", Celebrate Backwards/Binary Day";
else if (season == 0 && day == 11) ddaystr += ", Celebrate RAW Day";
else if (season == 0 && day == 14) ddaystr += ", Celebrate Golden Apple Presentation Day";
else if (season == 0 && day == 17) ddaystr += ", Celebrate Joshmas";
else if (season == 0 && day == 18) ddaystr += ", Celebrate Pat Pineapple Day";
else if (season == 0 && day == 21) ddaystr += ", Celebrate Hug Day";
else if (season == 0 && day == 26) ddaystr += ", Celebrate Backwards Day (Traditional)";
else if (season == 0 && day == 37) ddaystr += ", Celebrate Aaron Burrs Birthday";
else if (season == 0 && day == 49) ddaystr += ", Celebrate The Mary Day";
else if (season == 0 && day == 51) ddaystr += ", Celebrate Pet Loving Day";
else if (season == 0 && day == 69) ddaystr += ", Celebrate Head Chicken/Chicken Head Day";
else if (season == 0 && day == 72) ddaystr += ", Celebrate Daytime";
else if (season == 1 && day == 4) ddaystr += ", Celebrate Grover Clevelands Birthday";
else if (season == 1 && day == 11) ddaystr += ", Celebrate Discordians for Jesus/Love Your Neighbor Day";
else if (season == 1 && day == 18) ddaystr += ", Celebrate Fools Day";
else if (season == 1 && day == 19) ddaystr += ", Celebrate St. John the Blasphemists Day";
else if (season == 1 && day == 34) ddaystr += ", Celebrate Omarmas";
else if (season == 1 && day == 43) ddaystr += ", Celebrate Universal Ordination Day";
else if (season == 1 && day == 68) ddaystr += ", Celebrate Mal-2mas";
else if (season == 1 && day == 70) ddaystr += ", Celebrate Jake Day Jr. (DJ)/Day of the Elppin";
else if (season == 1 && day == 72) ddaystr += ", Celebrate Towel Day";
else if (season == 2 && day == 26) ddaystr += ", Celebrate Imaginary Friend/Captain Tuttle Day";
else if (season == 2 && day == 28) ddaystr += ", Celebrate St. Georges Day";
else if (season == 2 && day == 30) ddaystr += ", Celebrate Zoog Day";
else if (season == 2 && day == 36) ddaystr += ", Celebrate June 31st for Popes";
else if (season == 2 && day == 37) ddaystr += ", Celebrate Mid-Years Day";
else if (season == 2 && day == 40) ddaystr += ", Celebrate X-Day";
else if (season == 2 && day == 55) ddaystr += ", Celebrate Mal-2 Day";
else if (season == 2 && day == 57) ddaystr += ", Celebrate John Dillinger Day";
else if (season == 3 && day == 3) ddaystr += ", Celebrate Multiversal Underwear Day";
else if (season == 3 && day == 18) ddaystr += ", Celebrate Festival of Hanky-Panky Spankies";
else if (season == 3 && day == 33) ddaystr += ", Celebrate Cat Dancing & Pussyfoot Day";
else if (season == 3 && day == 37) ddaystr += ", Celebrate Mass of Planet Eris/Eristotle";
else if (season == 3 && day == 39) ddaystr += ", Celebrate St. Mammes's Day";
else if (season == 3 && day == 41) ddaystr += ", Celebrate Emperor Norton Proclamation Day";
else if (season == 3 && day == 57) ddaystr += ", Celebrate Shamlicht Kids Club Day";
else if (season == 3 && day == 59) ddaystr += ", Celebrate Gonkulator Day (Gonculator Day)";
else if (season == 3 && day == 60) ddaystr += ", Celebrate Mad Hatter Day";
else if (season == 3 && day == 66) ddaystr += ", Celebrate Habeas Corpus Remembrance Day";
else if (season == 4 && day == 28) ddaystr += ", Celebrate Ek-sen-triks CluborGuild Day";
else if (season == 4 && day == 36) ddaystr += ", Celebrate Spanking Fest";
else if (season == 4 && day == 37) ddaystr += ", Celebrate 537 Day, sometimes Turkey Day";
else if (season == 4 && day == 40) ddaystr += ", Celebrate Omars Day";
else if (season == 4 && day == 43) ddaystr += ", Celebrate Day D";
else if (season == 4 && day == 46) ddaystr += ", Celebrate Hug Day II";
else if (season == 4 && day == 65) ddaystr += ", Celebrate Circlemas";
return ddaystr;
}
function go() {
var iddate = document.getElementById("ddate");
var idtime = document.getElementById("dtime");
var idday = document.getElementById("dday");
// Current date-time with any time zone offset
var ddatetime = new Date();
ddatetime = dtime(ddatetime);
iddate.innerHTML = ddatetime[0];
idtime.innerHTML = ddatetime[1];
idday.innerHTML = ddatetime[2];
}
window.onload = function() {
go();
// 1 discordian decimal second = 864 christian milliseconds
setInterval(go, 864);
}