Franta (Pondělí 27. prosince 2010)
Možná mi něco uteklo, ale v 10. století žádné přestupné roky nebyly. Výpočet azimutu je založen na rozpočtu maximální deklinace Slunce pro jednotlivé dny roku. Já jsem nakonec použil:
$d=deg2rad($deklls*sin(2*pi()/365*($den+284)));
počítám podle juliánského kalendáře, vypočítávám zpoždění a to posunuji proměnnou $den ($deklls je deklinace Slunce o letním slunovratu).
Při výpočtu zpoždění se spoléhám na PHP, který mi převede juliánské datum na gregoriánské - tedy se v juliánském kalendáři dopočítám v pohodě až do dneška.
To, že např. v roce 2008 nemám 31.12 jde na vrub algoritmu - prostě mám cyklus, který se 365x opakuje, stačí to upravit cyklus tak aby se zastavil až bude 31.12 podle juliánského kalendáře. Při převodu juliánského na gregoriánské datum PHP v gregoriánském kalendáři s 29.2 počítá.
Možná by stačilo pro přestupný rok upravit vzorec tak, že se 365 nahradí 366 a dopočte se proměnná $den tak aby sin závorky byl 1.
Stejně je to, dle mého soudu, asi nějaká aproximace jednotlivých denních deklinací Slunce.
$d=deg2rad($deklls*sin(2*pi()/365*($den+284)));
počítám podle juliánského kalendáře, vypočítávám zpoždění a to posunuji proměnnou $den ($deklls je deklinace Slunce o letním slunovratu).
Při výpočtu zpoždění se spoléhám na PHP, který mi převede juliánské datum na gregoriánské - tedy se v juliánském kalendáři dopočítám v pohodě až do dneška.
To, že např. v roce 2008 nemám 31.12 jde na vrub algoritmu - prostě mám cyklus, který se 365x opakuje, stačí to upravit cyklus tak aby se zastavil až bude 31.12 podle juliánského kalendáře. Při převodu juliánského na gregoriánské datum PHP v gregoriánském kalendáři s 29.2 počítá.
Možná by stačilo pro přestupný rok upravit vzorec tak, že se 365 nahradí 366 a dopočte se proměnná $den tak aby sin závorky byl 1.
Stejně je to, dle mého soudu, asi nějaká aproximace jednotlivých denních deklinací Slunce.

Kniha HAJDY NA HRAD