solarwheeloftheyear/index.html

261 lines
26 KiB
HTML

<!DOCTYPE html>
<!-- https://github.com/zlaxy/solarwheeloftheyear -->
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<!--
Image 'The Wheel Of The Year' by Charlee Brown https://www.flickr.com/photos/charleebrown/376931276
;
;=
.=; .X
... ;;.
; .; ;.=
== =. = . ;
. X=. ;. = = ;.
+ .;;; .. .; .. .
+. ;..; . = =
X; .; .= = .; = =. .
=;; ;. .+. = = ; . .=
; ; = =. = X = ; ;;
.;.; ;. ;. = .. ; = ;;
= = ; =. = ; ;. = = ;
+ .= = =. = ;; ; . .. ;
; .; = =. = = .; . = .;
; = = .= = ; ; .; .. ;=
;. = ;. ; . .= ; .; = ;.
= .= .= .; .. ; = .+ ; ;
= .; ; ;; .. ;. .; .X ;.
; ;. =. = ;. .; ;. .X ;; ;
. =. .; .. .= =. + = = .; +
+. .. .; ; . ; + ;. ; .= =
.+. = .; = ; ; ; = + ;. .
;; + .; X .; ; = = .X ;. =
;... .. .+ ; = ; X . .+ =. X
; .. = + . .. ; ; + .; ;. ;
.; .; ; .; ; X ; ; ; .; ; ..
.. ... ;. .; + .;; . . . ; =. .;;
; ;; ; ;; ; ==. ;=; = = ; ;;.;=.
;. ;; = = ;. =;. ;= X ;. .; .+. =.
; .=. ;. ;.; .=. ;= ;.. . ..; =
.. =+ = .;; +. ;= ..= = ... =
; .=; ; .+. ;. ;= += .. .=. =.
;. =; ; X. + ;= =; = .;. .;
; .= ; ;+ + ;. ;+ ;. =. =
= .. + ; = ; ;. ;= ; = =
;; ; =.; = .; = .; .. =
.; ; ;.; ; .X = + =; .;
; =. .. ;=. .= + ; .. .+
; ;. = =X =. ; .=; +
. .= ;. ;; . X; ;.
.; ;;. ; =. ;+ =
; ; ; ; =. .+ = ==;;;
= ;.=. .; = ;;;;; + =. ;;+=; ;;;..=.
.. == . .. = .;+M##########M;;. + .. .;;X=. .=;
;. ;=.; ; .= ;X###M++++==++++M##M+;.==. ;. .= ..=.. ;=
= ..=. ; . =M##X=;...........;==+M#M##= = .= . .;.
; .;. ; =##M+.................;M#####+ .= .;= ;=
; .;.. ;M##+.................=X########+ .=; ; .=.
; .+= =M#M;.................X###########M. .X.. .;
; =+ X#M=.................+#############M#= =X. =;
; .+. X#M;................=M##############=M#; =; .;.
= == M#M................;X################X;MM; .+. .=
=. . X#M................+###M#=############X..M#; .= .=
.= +#M................X###MM#+#############..;M#. .=
=; ;##;...............+####=#M=#############...;#M ;;
.= M#=................X###.;#==#############;...;#+ ;.
=; +#X.................###X X#=X#############.....X#. =.
.== .MM=................X###M.## X############M.....;#+ .;
.;. M#X..........;=;.;X######X#X X############X......X#. ;.
.. ;;;;=+X;;====.. .##........;XM###M##########X X############+......;#X ;= ...=;;;;.....
;..=;; .=+. X#X......;X##################.X############........M#. ;;=; ;==;.. ..;.+=;.;;
;= ;. .##;.....XM###################XM###########=........;#= .++.; ;;.;=+=;.
.+;. =#M....=M############;+#M#################X..........MX .;X.. ... .;+X=
..=. X#+..;M##############X;#XX###############X=..........=#. .= ;;;
;=. .M#.;M################M.X#==#############X;X..........;#= .+..
= .##X###################;;#X.;XM########M=.=+...........MX .;;
.=. .#####M#M##############=.X#+...=X##XXX=...==...........X#. .;.
;.;. .=X;. M####+MM+##############X.;#MX+...;X;......=+...........X#; .=.
==.. X####M;#=X##############X..;++XX...X;......;+.......+...X#; ..X
.=.;; =#####=;#.M##############+......=.;+=........X=.....+=...X#; ;.;
.; .;;;;;;;;;;;+=; .M####.+M ###############=........X=.......;M#M+=;=X=....X#; ==.
..==. M###+X= ##############M........=M......;+M+#;;+==......X#; ..;=+
..;. +#####= ##############X.......;X+....;+#M=+#;..........X#; ;;.;==;;. ;==.
;.; +#####X ##############;..XX+=+M+...;X##M=;+M...........X#; ...=;
.=. =######;#############MM+X;;XMX...=M###+=;;MM...........X#; .=..
;.; .#XX###M############+.+=........=###M+;;;=#+...........XM ;;.
.;. .##.=##############+.........=XX###M=;;;;+#+...........MX ..;.
;. M#;.=M##########M=........;X#####X=;;;;;M#=..........=#= .;
;; =#+...+X######M+.........;M####M+;;;;;;+##...........+#. ..;
=. ;#M.....;=======........+M###X+;;;;;;;=M#M...........MM ..==
;= .;+ M#=.........=;=X=....;M##M==;;;;;;;;=MM#X..........;#= .=+. ... ....
.=. ;== =#X.............+X.;+#MX=;;;;;;;;;;+#= M+..........M#. ..=+==;=++;
.+ =X= M#;.............XXX+=;;;;;;;;;;;=X#= =#..........;#X == .;.
;; .. ;;;= =#X.............=#M+=;;;;;;;;;=+MX. =#;..........X#. ;X;. ..=
=. .;===;.==;; .;;. .= M#;............;X+M#XX+=;;=+X#X= +M=..........;#X =;== ;=.;
=. ;X=..;;;;;;;;;;. ;; ;#M............;=..=M##MMMM#+. ;MM;...........MM. .==.;+; .=+; ;
+=.;. ;. X#=...........+;...;=M####; .+MX;...........=#+ .=. .;;. ..;; ;;;
. ;; .MM;.........;M.......;=XMM+MMX;........=...;MX .=
=. ;MM;......;+M;...........;==...........=..;M# =;
;. ;#M;....++=..........................;;..X#; .=
.= =#M.................................X.;M#= ; ;.
.; .= =MM;..............................===##= ;= ;.
;; =; ;#M=.............................X+##; =. ..
.. = ;M#X;................+;.......;M##M; ;; ..
;; ;; +##X;...............++=...=X##M= =. ..
;. .+. ;X##X=..............;=+MM###+. =; .;
= ;+. .XM#MX;;;.........;;XM#MX. ;.=. .;
; ..;+ +X####M+====+MM###X= ; ;;; ;.
;. ... ; +. .;;XX######MX;;. . ; ..=. ;
;. ;. ; =. ...... = ;; == =
.= ..=. ; .+ .= ;. =;; ..
.. ;; ; ; X. .; ; ..; ;.
+. . ;=+ ; ++ ;; . + ;
;. .;;;; ; ..= . . += . =. ..
;;=;=. ;; ;. . ;. .; ; .;; ; .; ;
. ; ; ; X + ; ;;= = .; ..
= .; ; .= .= ; ; = =. .. .= ;
;. ;; ; == .; + ;. . .. ; ==.
= .; = ..; =; X + ; .= . ;=
; . . ; ; =; = =; ; =. = =
.. .;. ; ..; .; =; .; . .= ;
; .; ; . + ;.; . ;. ; =. .
.. . ; = + . . .; .; ; ... ;
; .; ; ; ; . . . . . .. ;; ..
.. = .. . ; . . ; ;; = ; ;. =
;.= = ;. ; = . ; . .; . ;; =
.+. ; ;. .. + ; . ;. . ;; .
. = ;. ; ; ; . = ; = ;.=
; ;. .. . ; ;. ;. ; ; .=.
; .. ; + ; .. . .; .+
; ; .; ; ; ; . . +
= = ; .; ; ;. ; . ;
. ; = . ; ; . .
.; =. ; = . = ; ; ;. .
= .. ; ; ; = ; ; ; =
; .; + + =. . ; + ; ;
.. ;; ; . . .. ; X
.==. . . ; ; = ;
.+. . = ; = ; . +
= . + .; .. ; ; .
; . = . ; ; ;
; ; ; = ;..
. ; .. .. ;.=
. ; . =.. =.
. ;; .;
;.; = .; +
.; ..
+X = ;=
+ . .;
. .
=;
.
-->
<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="https://fonts.googleapis.com/css?family=Ubuntu:regular&amp;subset=Latin,Cyrillic">
<link rel="stylesheet" type="text/css" href="anthrstlsht.css">
<title>solar wheel of the year</title>
</head>
<body>
<br><p align="center"><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(-9, 'UTC-9');" value="UTC-9"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-8, 'UTC-8');" value="UTC-8"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-7, 'UTC-7');" value="UTC-7"/><br>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-6, 'UTC-6');" value="UTC-6"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-5, 'UTC-5');" value="UTC-5"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-4, 'UTC-4');" value="UTC-4"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-3.5, 'UTC-3:30');" value="UTC-3:30"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(-3, 'UTC-3');" value="UTC-3"/><br>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(0, 'UTC-0');" value="UTC-0"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(1, 'UTC+1');" value="UTC+1"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(2, 'UTC+2');" value="UTC+2"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(3, 'UTC+3');" value="UTC+3"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(3.5, 'UTC+3:30');" value="UTC+3:30"/><br>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(5, 'UTC+5');" value="UTC+5"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(5.5, 'UTC+5:30');" value="UTC+5:30"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(6, 'UTC+6');" value="UTC+6"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(6.5, 'UTC+6:30');" value="UTC+6:30"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(7, 'UTC+7');" value="UTC+7"/><br>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(8, 'UTC+8');" value="UTC+8"/>
<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.5, 'UTC+9:30');" value="UTC+9:30"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(10, 'UTC+10');" value="UTC+10"/>
<input type="button" onclick="document.getElementById('soltable').innerHTML = makeTable(11, 'UTC+11');" value="UTC+11"/></p>
<div align = "center" id="soltable"></div>
<script type="text/javascript">
// The exact reference year is only 2021. The dates of the others are calculate according to this model.
var VernalEquinox2021 = new Date('Sat Mar 20 2021 09:37:27 GMT+0000');
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) {
var dateout = "" + ("0" + ( datein.getUTCDate())).slice(-2) + "." + ("0" + ( datein.getUTCMonth() + 1)).slice(-2) + " " + ("0" + datein.getUTCHours()).slice(-2) + ":" + ("0" + datein.getUTCMinutes()).slice(-2);
return dateout;
}
function tableRow(vernalequinox) {
var stringout = "<td>";
if (vernalequinox.getYear() == VernalEquinox2021.getYear()) stringout += "<b>";
stringout += vernalequinox.getFullYear();
if (vernalequinox.getYear() == VernalEquinox2021.getYear()) stringout += "</b>";
var Imbolc = new Date(vernalequinox.getTime() - ((VernalEquinox2022.getTime() - SouthernSolstice2021.getTime()) / 2));
stringout += '<td class = "even">' + formatedDate(Imbolc) + "</td>";
stringout += "</td><td>" + formatedDate(vernalequinox) + "</td>";
var Beltane = new Date(vernalequinox.getTime() + ((NorthernSolstice2021.getTime() - VernalEquinox2021.getTime()) / 2));
stringout += '<td class = "even">' + formatedDate(Beltane) + "</td>";
var Midsummer = new Date(vernalequinox.getTime() + (NorthernSolstice2021.getTime() - VernalEquinox2021.getTime()));
stringout += "<td>" + formatedDate(Midsummer) + "</td>";
var Lughnasadh = new Date(vernalequinox.getTime() + ((NorthernSolstice2021.getTime() - VernalEquinox2021.getTime()) + (AutumnalEquinox2021.getTime() - NorthernSolstice2021.getTime()) / 2));
stringout += '<td class = "even">' + formatedDate(Lughnasadh) + "</td>";
var Mabon = new Date(vernalequinox.getTime() + (AutumnalEquinox2021.getTime() - VernalEquinox2021.getTime()));
stringout += "<td>" + formatedDate(Mabon) + "</td>";
var Samhain = new Date(vernalequinox.getTime() + ((AutumnalEquinox2021.getTime() - VernalEquinox2021.getTime()) + (SouthernSolstice2021.getTime() - AutumnalEquinox2021.getTime()) / 2));
stringout += '<td class = "even">' + formatedDate(Samhain) + "</td>";
var Yule = new Date(vernalequinox.getTime() + (SouthernSolstice2021.getTime() - VernalEquinox2021.getTime()));
stringout += "<td>" + formatedDate(Yule) + "</td>";
return stringout;
}
function makeTable(UTC, UTCstr) {
var fulltable = "<table><caption>";
now = new Date();
fulltable += 'Approximate astronomical <a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year">Wheel of the Year</a> - ' + '<a href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time"><b>' + UTCstr + "</b></a><br>";
fulltable += 'Model: 2021 <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 += '<tr><th>Gregorian Year</th><th><a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year#Imbolc">Imbolc</a></th><th><a';
fulltable += ' href="https://en.wikipedia.org/wiki/Wheel_of_the_Year#Vernal_Equinox_.28Ostara.29">Ostara</a></th><th>';
fulltable += '<a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year#Beltane">Beltane</a></th><th><a href="https://en.wikipedia.org/wiki/';
fulltable += 'Wheel_of_the_Year#Midsummer_.28Litha.29">Midsummer</a></th><th><a href="https://en.wikipedia.org/wiki/';
fulltable += 'Wheel_of_the_Year#Lammas.2FLughnasadh">Lughnasadh</a></th><th><a href="https://en.wikipedia.org/wiki/';
fulltable += 'Wheel_of_the_Year#Autumnal_equinox_.28Mabon.29">Mabon</a></th><th><a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year#Samhain">';
fulltable += 'Samhain</a></th><th><a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year#Midwinter_.28Yule.29">Yule</a></th></tr>';
for (var i = 1; i <= 17; i++) {
var current = new Date ( VernalEquinox2021.getTime() + ( UTC * 60 * 60 * 1000 ) - ( ( VernalEquinox2022.getTime() - VernalEquinox2021.getTime() ) * (7 - i) ) );
if (current.getYear() == now.getYear()) fulltable += '<tr class = "currentyear">';
else if (i % 2 == 0 ) fulltable += '<tr class = "even">';
else fulltable += '<tr>'
fulltable += tableRow(current) + "</tr>";
}
fulltable += "</table>";
return fulltable;
}
var defaultTable = makeTable(0, "UTC-0");
document.getElementById("soltable").innerHTML = defaultTable;
</script>
<br><p align="center"><a href="https://github.com/zlaxy/solarwheeloftheyear">source code</a></p>
<br><p align="center"><a href="https://en.wikipedia.org/wiki/Wheel_of_the_Year"><img src="the_wheel_of_the_year_by_Charlee_Brown.jpg" alt="The Wheel Of The Year by Charlee Brown"></a></p>
</body>
</html>