<!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&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>