accurate 3181-3197 yolds
This commit is contained in:
parent
f564955043
commit
560ce05a51
|
@ -1,4 +1,4 @@
|
||||||
Approximate astronomical Wheel of the Year
|
Accurate astronomical Wheel of the Year
|
||||||
|
|
||||||
https://wheeloftheyear.soundragon.su
|
https://wheeloftheyear.soundragon.su
|
||||||
|
|
||||||
|
|
160
index.html
160
index.html
|
@ -2,8 +2,8 @@
|
||||||
<!-- https://gitlab.com/zlax/solarwheeloftheyear -->
|
<!-- https://gitlab.com/zlax/solarwheeloftheyear -->
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml"><head>
|
||||||
<head>
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<!--
|
<!--
|
||||||
Image: https://gitlab.com/DougInAMug/octosol
|
|
||||||
;
|
;
|
||||||
;=
|
;=
|
||||||
.=; .X
|
.=; .X
|
||||||
|
@ -150,13 +150,12 @@
|
||||||
.
|
.
|
||||||
-->
|
-->
|
||||||
<link rel="icon" href="favicon.ico" type="image/x-icon"><link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
|
<link rel="icon" href="favicon.ico" type="image/x-icon"><link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
||||||
<link rel="stylesheet" type="text/css" href="anthrstlsht.css">
|
<link rel="stylesheet" type="text/css" href="anthrstlsht.css">
|
||||||
<script type="text/javascript" src="dtime.js"></script>
|
<script type="text/javascript" src="dtime.js"></script>
|
||||||
<title>solar wheel of the year</title>
|
<title>solar wheel of the year</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<br><p align="center"><input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable('UTC', 'erisian');" value="Erisian time"/></p>
|
<br><p align="center"><input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(0, 'erisian');" value="Erisian time"/></p>
|
||||||
<p align="center">Christian time:<br><input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-11, 'UTC-11');" value="UTC-11"/>
|
<p align="center">Christian time:<br><input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-11, 'UTC-11');" value="UTC-11"/>
|
||||||
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-10, 'UTC-10');" value="UTC-10"/>
|
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-10, 'UTC-10');" value="UTC-10"/>
|
||||||
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-9, 'UTC-9');" value="UTC-9"/>
|
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-9, 'UTC-9');" value="UTC-9"/>
|
||||||
|
@ -187,41 +186,126 @@
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
// The exact reference year is only 2021. The dates of the others are calculate according to this model.
|
var ve = Array(); // Vernal Equinox
|
||||||
|
// https://www.imcce.fr/newsletter/docs/Equinoxe_printemps_1583_2999.pdf
|
||||||
|
ve[2015] = new Date('Fri Mar 20 2015 22:45:09 GMT+0000');
|
||||||
|
ve[2016] = new Date('Sun Mar 20 2016 04:30:11 GMT+0000');
|
||||||
|
ve[2017] = new Date('Mon Mar 20 2017 10:28:38 GMT+0000');
|
||||||
|
ve[2018] = new Date('Tue Mar 20 2018 16:15:27 GMT+0000');
|
||||||
|
ve[2019] = new Date('Wed Mar 20 2019 21:58:25 GMT+0000');
|
||||||
|
ve[2020] = new Date('Fri Mar 20 2020 03:49:36 GMT+0000');
|
||||||
|
ve[2021] = new Date('Sat Mar 20 2021 09:37:27 GMT+0000');
|
||||||
|
ve[2022] = new Date('Sun Mar 20 2022 15:33:23 GMT+0000');
|
||||||
|
ve[2023] = new Date('Mon Mar 20 2023 21:24:24 GMT+0000');
|
||||||
|
ve[2024] = new Date('Wed Mar 20 2024 03:06:21 GMT+0000');
|
||||||
|
ve[2025] = new Date('Thu Mar 20 2025 09:01:25 GMT+0000');
|
||||||
|
ve[2026] = new Date('Fri Mar 20 2026 14:45:53 GMT+0000');
|
||||||
|
ve[2027] = new Date('Sat Mar 20 2027 20:24:36 GMT+0000');
|
||||||
|
ve[2028] = new Date('Mon Mar 20 2028 02:17:02 GMT+0000');
|
||||||
|
ve[2029] = new Date('Tue Mar 20 2029 08:01:52 GMT+0000');
|
||||||
|
ve[2030] = new Date('Wed Mar 20 2030 13:51:58 GMT+0000');
|
||||||
|
ve[2031] = new Date('Thu Mar 20 2031 19:40:51 GMT+0000');
|
||||||
|
ve[2032] = new Date('Sat Mar 20 2032 01:21:45 GMT+0000');
|
||||||
|
ve[2033] = new Date('Sun Mar 20 2033 07:22:35 GMT+0000');
|
||||||
|
ve[2034] = new Date('Mon Mar 20 2034 13:17:20 GMT+0000');
|
||||||
|
ve[2035] = new Date('Tue Mar 20 2035 19:02:34 GMT+0000');
|
||||||
|
ve[2036] = new Date('Thu Mar 20 2035 01:02:40 GMT+0000');
|
||||||
|
var ns = Array(); // Northern Solstice
|
||||||
|
// https://www.imcce.fr/newsletter/docs/Solstice_ete_1583_2999.pdf
|
||||||
|
ns[2015] = new Date('Sun Jun 21 2015 16:37:55 GMT+0000');
|
||||||
|
ns[2016] = new Date('Mon Jun 20 2016 22:34:11 GMT+0000');
|
||||||
|
ns[2017] = new Date('Wed Jun 21 2017 04:24:09 GMT+0000');
|
||||||
|
ns[2018] = new Date('Thu Jun 21 2018 10:07:18 GMT+0000');
|
||||||
|
ns[2019] = new Date('Fri Jun 21 2019 15:54:14 GMT+0000');
|
||||||
|
ns[2020] = new Date('Sat Jun 20 2020 21:43:40 GMT+0000');
|
||||||
|
ns[2021] = new Date('Mon Jun 21 2021 03:32:08 GMT+0000');
|
||||||
|
ns[2022] = new Date('Tue Jun 21 2022 09:13:49 GMT+0000');
|
||||||
|
ns[2023] = new Date('Wed Jun 21 2023 14:57:47 GMT+0000');
|
||||||
|
ns[2024] = new Date('Thu Jun 20 2024 20:50:56 GMT+0000');
|
||||||
|
ns[2025] = new Date('Sat Jun 21 2025 02:42:11 GMT+0000');
|
||||||
|
ns[2026] = new Date('Sun Jun 21 2026 08:24:26 GMT+0000');
|
||||||
|
ns[2027] = new Date('Mon Jun 21 2027 14:10:45 GMT+0000');
|
||||||
|
ns[2028] = new Date('Tue Jun 20 2028 20:01:54 GMT+0000');
|
||||||
|
ns[2029] = new Date('Thu Jun 21 2029 01:48:11 GMT+0000');
|
||||||
|
ns[2030] = new Date('Fri Jun 21 2030 07:31:11 GMT+0000');
|
||||||
|
ns[2031] = new Date('Sat Jun 21 2031 13:17:00 GMT+0000');
|
||||||
|
ns[2032] = new Date('Sun Jun 20 2032 19:08:38 GMT+0000');
|
||||||
|
ns[2033] = new Date('Tue Jun 21 2033 01:00:59 GMT+0000');
|
||||||
|
ns[2034] = new Date('Wed Jun 21 2034 06:44:02 GMT+0000');
|
||||||
|
ns[2035] = new Date('Thu Jun 21 2035 12:32:58 GMT+0000');
|
||||||
|
var ae = Array(); // Autumnal Equinox
|
||||||
|
// https://www.imcce.fr/newsletter/docs/Equinoxe_automne_1583_2999.pdf
|
||||||
|
ae[2015] = new Date('Wed Sep 23 2015 08:20:33 GMT+0000');
|
||||||
|
ae[2016] = new Date('Thu Sep 22 2016 14:21:07 GMT+0000');
|
||||||
|
ae[2017] = new Date('Fri Sep 22 2017 20:01:48 GMT+0000');
|
||||||
|
ae[2018] = new Date('Sun Sep 23 2018 01:54:05 GMT+0000');
|
||||||
|
ae[2019] = new Date('Mon Sep 23 2019 07:50:10 GMT+0000');
|
||||||
|
ae[2020] = new Date('Tue Sep 22 2020 13:30:38 GMT+0000');
|
||||||
|
ae[2021] = new Date('Wed Sep 22 2021 19:21:03 GMT+0000');
|
||||||
|
ae[2022] = new Date('Fri Sep 23 2022 01:03:40 GMT+0000');
|
||||||
|
ae[2023] = new Date('Sat Sep 23 2023 06:49:56 GMT+0000');
|
||||||
|
ae[2024] = new Date('Sun Sep 22 2024 12:43:36 GMT+0000');
|
||||||
|
ae[2025] = new Date('Mon Sep 22 2025 18:19:16 GMT+0000');
|
||||||
|
ae[2026] = new Date('Wed Sep 23 2026 00:05:08 GMT+0000');
|
||||||
|
ae[2027] = new Date('Thu Sep 23 2027 06:01:38 GMT+0000');
|
||||||
|
ae[2028] = new Date('Fri Sep 22 2028 11:45:12 GMT+0000');
|
||||||
|
ae[2029] = new Date('Sat Sep 22 2029 17:38:23 GMT+0000');
|
||||||
|
ae[2030] = new Date('Sun Sep 22 2030 23:26:46 GMT+0000');
|
||||||
|
ae[2031] = new Date('Tue Sep 23 2031 05:15:10 GMT+0000');
|
||||||
|
ae[2032] = new Date('Wed Sep 22 2032 11:10:44 GMT+0000');
|
||||||
|
ae[2033] = new Date('Thu Sep 22 2033 16:51:31 GMT+0000');
|
||||||
|
ae[2034] = new Date('Fri Sep 22 2034 22:39:25 GMT+0000');
|
||||||
|
ae[2035] = new Date('Sun Sep 23 2035 04:38:46 GMT+0000');
|
||||||
|
var ss = Array(); // Southern Solstice
|
||||||
|
// https://www.imcce.fr/newsletter/docs/Solstice_ete_1583_2999.pdf
|
||||||
|
ss[2014] = new Date('Sun Dec 21 2014 23:03:01 GMT+0000');
|
||||||
|
ss[2015] = new Date('Tue Dec 22 2015 04:47:57 GMT+0000');
|
||||||
|
ss[2016] = new Date('Wed Dec 21 2016 10:44:10 GMT+0000');
|
||||||
|
ss[2017] = new Date('Thu Dec 21 2017 16:27:57 GMT+0000');
|
||||||
|
ss[2018] = new Date('Fri Dec 21 2018 22:22:44 GMT+0000');
|
||||||
|
ss[2019] = new Date('Sun Dec 22 2019 04:19:25 GMT+0000');
|
||||||
|
ss[2020] = new Date('Mon Dec 21 2020 10:02:19 GMT+0000');
|
||||||
|
ss[2021] = new Date('Tue Dec 21 2021 15:59:16 GMT+0000');
|
||||||
|
ss[2022] = new Date('Wed Dec 21 2022 21:48:10 GMT+0000');
|
||||||
|
ss[2023] = new Date('Fri Dec 22 2023 03:27:19 GMT+0000');
|
||||||
|
ss[2024] = new Date('Sat Dec 21 2024 09:20:30 GMT+0000');
|
||||||
|
ss[2025] = new Date('Sun Dec 21 2025 15:03:01 GMT+0000');
|
||||||
|
ss[2026] = new Date('Mon Dec 21 2026 20:50:09 GMT+0000');
|
||||||
|
ss[2027] = new Date('Wed Dec 22 2027 02:42:04 GMT+0000');
|
||||||
|
ss[2028] = new Date('Thu Dec 21 2028 08:19:33 GMT+0000');
|
||||||
|
ss[2029] = new Date('Fri Dec 21 2029 14:13:59 GMT+0000');
|
||||||
|
ss[2030] = new Date('Sat Dec 21 2030 20:09:30 GMT+0000');
|
||||||
|
ss[2031] = new Date('Mon Dec 22 2031 01:55:25 GMT+0000');
|
||||||
|
ss[2032] = new Date('Tue Dec 21 2032 07:55:48 GMT+0000');
|
||||||
|
ss[2033] = new Date('Wed Dec 21 2033 13:45:51 GMT+0000');
|
||||||
|
ss[2034] = new Date('Thu Dec 21 2034 19:33:50 GMT+0000');
|
||||||
|
ss[2035] = new Date('Sat Dec 22 2035 01:30:42 GMT+0000');
|
||||||
|
|
||||||
var VernalEquinox2021 = new Date('Sat Mar 20 2021 09:37:27 GMT+0000');
|
function formatedDate(datein, timeoutput, UTC) {
|
||||||
var NorthernSolstice2021 = new Date('Mon Jun 21 2021 03:32:08 GMT+0000');
|
|
||||||
var AutumnalEquinox2021 = new Date('Wed Sep 22 2021 19:21:03 GMT+0000');
|
|
||||||
var SouthernSolstice2021 = new Date('Tue Dec 21 2021 15:59:16 GMT+0000');
|
|
||||||
var VernalEquinox2022 = new Date('Sun Mar 20 2022 15:33:23 GMT+0000');
|
|
||||||
|
|
||||||
function formatedDate(datein, timeoutput) {
|
|
||||||
if (timeoutput == 'erisian') var dateout = dtime(datein, 'timeofyold');
|
if (timeoutput == 'erisian') var dateout = dtime(datein, 'timeofyold');
|
||||||
else var dateout = "" + ("0" + ( datein.getUTCDate())).slice(-2) + "." + ("0" + ( datein.getUTCMonth() + 1)).slice(-2) + " " + ("0" + datein.getUTCHours()).slice(-2) + ":" + ("0" + datein.getUTCMinutes()).slice(-2);
|
else {
|
||||||
|
var timein = new Date ( datein.getTime() + ( UTC * 60 * 60 * 1000 ));
|
||||||
|
var dateout = "" + ("0" + ( timein.getUTCDate())).slice(-2) + "." + ("0" + ( timein.getUTCMonth() + 1)).slice(-2) + " " + ("0" + timein.getUTCHours()).slice(-2) + ":" + ("0" + timein.getUTCMinutes()).slice(-2);
|
||||||
|
}
|
||||||
return dateout;
|
return dateout;
|
||||||
}
|
}
|
||||||
|
|
||||||
function tableRow(vernalequinox, timeoutput) {
|
function tableRow(cy, timeoutput, UTC) {
|
||||||
var stringout = "<td>";
|
var stringout = "<td>";
|
||||||
if (vernalequinox.getYear() == VernalEquinox2021.getYear()) stringout += "<b>";
|
if (timeoutput == 'erisian') stringout += dtime(ve[cy], 'yold');
|
||||||
if (timeoutput == 'erisian') stringout += dtime(vernalequinox, 'yold');
|
else stringout += cy;
|
||||||
else stringout += vernalequinox.getFullYear();
|
var Imbolc = new Date(ss[cy-1].getTime() + ((ve[cy].getTime() - ss[cy-1].getTime()) / 2));
|
||||||
if (vernalequinox.getYear() == VernalEquinox2021.getYear()) stringout += "</b>";
|
stringout += '<td class = "even">' + formatedDate(Imbolc, timeoutput, UTC) + "</td>";
|
||||||
var Imbolc = new Date(vernalequinox.getTime() - ((VernalEquinox2022.getTime() - SouthernSolstice2021.getTime()) / 2));
|
stringout += '<td>' + formatedDate(ve[cy], timeoutput, UTC) + "</td>";
|
||||||
stringout += '<td class = "even">' + formatedDate(Imbolc, timeoutput) + "</td>";
|
var Beltane = new Date(ve[cy].getTime() + ((ns[cy].getTime() - ve[cy].getTime()) / 2));
|
||||||
stringout += '</td><td>' + formatedDate(vernalequinox, timeoutput) + "</td>";
|
stringout += '<td class = "even">' + formatedDate(Beltane, timeoutput, UTC) + "</td>";
|
||||||
var Beltane = new Date(vernalequinox.getTime() + ((NorthernSolstice2021.getTime() - VernalEquinox2021.getTime()) / 2));
|
stringout += '<td>' + formatedDate(ns[cy], timeoutput, UTC) + "</td>";
|
||||||
stringout += '<td class = "even">' + formatedDate(Beltane, timeoutput) + "</td>";
|
var Lughnasadh = new Date(ns[cy].getTime() + ((ae[cy].getTime() - ns[cy].getTime()) / 2));
|
||||||
var Midsummer = new Date(vernalequinox.getTime() + (NorthernSolstice2021.getTime() - VernalEquinox2021.getTime()));
|
stringout += '<td class = "even">' + formatedDate(Lughnasadh, timeoutput, UTC) + "</td>";
|
||||||
stringout += '<td>' + formatedDate(Midsummer, timeoutput) + "</td>";
|
stringout += '<td>' + formatedDate(ae[cy], timeoutput, UTC) + "</td>";
|
||||||
var Lughnasadh = new Date(vernalequinox.getTime() + ((NorthernSolstice2021.getTime() - VernalEquinox2021.getTime()) + (AutumnalEquinox2021.getTime() - NorthernSolstice2021.getTime()) / 2));
|
var Samhain = new Date(ae[cy].getTime() + ((ss[cy].getTime() - ae[cy].getTime()) / 2));
|
||||||
stringout += '<td class = "even">' + formatedDate(Lughnasadh, timeoutput) + "</td>";
|
stringout += '<td class = "even">' + formatedDate(Samhain, timeoutput, UTC) + "</td>";
|
||||||
var Mabon = new Date(vernalequinox.getTime() + (AutumnalEquinox2021.getTime() - VernalEquinox2021.getTime()));
|
stringout += '<td>' + formatedDate(ss[cy], timeoutput, UTC) + "</td>";
|
||||||
stringout += '<td>' + formatedDate(Mabon, timeoutput) + "</td>";
|
|
||||||
var Samhain = new Date(vernalequinox.getTime() + ((AutumnalEquinox2021.getTime() - VernalEquinox2021.getTime()) + (SouthernSolstice2021.getTime() - AutumnalEquinox2021.getTime()) / 2));
|
|
||||||
stringout += '<td class = "even">' + formatedDate(Samhain, timeoutput) + "</td>";
|
|
||||||
var Yule = new Date(vernalequinox.getTime() + (SouthernSolstice2021.getTime() - VernalEquinox2021.getTime()));
|
|
||||||
stringout += '<td>' + formatedDate(Yule, timeoutput) + "</td>";
|
|
||||||
return stringout;
|
return stringout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,11 +313,10 @@ function makeTable(UTC, timeoutput) {
|
||||||
|
|
||||||
var fulltable = "<table><caption>";
|
var fulltable = "<table><caption>";
|
||||||
now = new Date();
|
now = new Date();
|
||||||
fulltable += 'Approximate astronomical <a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year">Wheel of the Year</a> - ';
|
fulltable += 'Accurate astronomical <a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year">Wheel of the Year</a> - ';
|
||||||
if (timeoutput == 'erisian') fulltable += '<a href="https://discordia.fandom.com/wiki/Erisian_Time">Erisian time</a></br>';
|
if (timeoutput == 'erisian') fulltable += '<a href="https://discordia.fandom.com/wiki/Erisian_Time">Erisian time</a></br>';
|
||||||
else fulltable += '<b>' + timeoutput + '</b> (<a href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated Universal Time</a>)<br>';
|
else fulltable += '<b>' + timeoutput + '</b> (<a href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated Universal Time</a>)<br>';
|
||||||
fulltable += '<a href="https://en.wikipedia.org/wiki/Tropical_year">Tropical year</a> - ' + ( ( VernalEquinox2022 - VernalEquinox2021 ) / 1000 / 60 / 60 / 24 ) + " days (view source for details)</caption>";
|
fulltable += '</caption><tr><th>';
|
||||||
fulltable += '<tr><th>';
|
|
||||||
if (timeoutput == 'erisian') fulltable += 'YOLD';
|
if (timeoutput == 'erisian') fulltable += 'YOLD';
|
||||||
else fulltable += 'Gregorian Year';
|
else fulltable += 'Gregorian Year';
|
||||||
fulltable += '</th><th><a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year#Imbolc">Imbolc</a></th><th><a';
|
fulltable += '</th><th><a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year#Imbolc">Imbolc</a></th><th><a';
|
||||||
|
@ -247,11 +330,11 @@ function makeTable(UTC, timeoutput) {
|
||||||
if (timeoutput == 'erisian') UTC = 0;
|
if (timeoutput == 'erisian') UTC = 0;
|
||||||
|
|
||||||
for (var i = 1; i <= 17; i++) {
|
for (var i = 1; i <= 17; i++) {
|
||||||
var current = new Date ( VernalEquinox2021.getTime() + ( UTC * 60 * 60 * 1000 ) - ( ( VernalEquinox2022.getTime() - VernalEquinox2021.getTime() ) * (7 - i) ) );
|
var currentyear = (now.getFullYear() - 8 + i);
|
||||||
if (current.getYear() == now.getYear()) fulltable += '<tr class = "currentyear">';
|
if (currentyear == now.getFullYear()) fulltable += '<tr class = "currentyear">';
|
||||||
else if (i % 2 == 0 ) fulltable += '<tr class = "even">';
|
else if (i % 2 == 0 ) fulltable += '<tr class = "even">';
|
||||||
else fulltable += '<tr class = "odd">'
|
else fulltable += '<tr class = "odd">'
|
||||||
fulltable += tableRow(current, timeoutput) + "</tr>";
|
fulltable += tableRow(currentyear, timeoutput, UTC) + "</tr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
fulltable += "</table>";
|
fulltable += "</table>";
|
||||||
|
@ -260,6 +343,7 @@ function makeTable(UTC, timeoutput) {
|
||||||
|
|
||||||
// var currentdate = new Date();
|
// var currentdate = new Date();
|
||||||
// var utcoffmin = -(currentdate.getTimezoneOffset()/60);
|
// var utcoffmin = -(currentdate.getTimezoneOffset()/60);
|
||||||
|
|
||||||
var defaultTable = makeTable(0, "erisian");
|
var defaultTable = makeTable(0, "erisian");
|
||||||
document.getElementById("soltable").innerHTML = defaultTable;
|
document.getElementById("soltable").innerHTML = defaultTable;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue