1/* 2 © 2017 3 made for http://www.abc2home.ru/ 4*/ 5var todayall = new Date();//(2017, 02, 02, 08, 0, 0, 0) // 2017, 01, 15, 22, 25, 0, 0 6var exdate='15 Feb 2017 22:25:00'; 7if (location.search.length > 1) { 8 var argstr = location.search.substring(1,location.search.length); 9 var args = argstr.split('&'); 10 for (var x in args) eval(decodeURI(args[x])); 11todayall = new Date(exdate) 12} 13var zod = "Ðвен, ТелеÑ, ÐлизнеÑÑ, Рак, Ðев, Ðева, ÐеÑÑ, СкоÑпион, СÑÑелеÑ, ÐозеÑог, Ðодолей, Ð ÑбÑ, ÐмееноÑеÑ, ÐиÑ"; 14var zodur = "znak_oven,znak-telets,znak-bliznetsy,znak-rak,znak_lev,znak-deva,znak-vesy,znak-skorpion,znak-strelets,znak-kozerog,znak-vodoley,znak-ryby"; 15var Mnfrs = "ÑÑÐ¿ÐµÑ ÐÑна, ÑилÑÐ½Ð°Ñ ÐÑна, ÑÑеднÑÑ ÐÑна, ÑÐ»Ð°Ð±Ð°Ñ ÐÑна, микÑо ÐÑна"; 16var phazreg=0, dti=0.5, idt='', TimeMachine = todayall.getTime(); 17var out1, int2, out2; 18 19function getPos(){var b,c,d,f,k;todayall.getTimezoneOffset();b=todayall.getFullYear();c=todayall.getMonth()+1;d=todayall.getDate();f=todayall.getHours()+todayall.getTimezoneOffset()/60;k=todayall.getMinutes();b=day2000(b,c,d,f+k/60);EcMoon=[0,0,0,0];EqMoon=[0,0,0,0];Nutat=[0,0,0,0];EcMoonNut=[0,0,0,0];EcMoon=Moon(b);nutat=nutation(b);EcMoonNut[1]=EcMoon[1]+nutat[1];EcMoonNut[2]=EcMoon[2]+nutat[2];EcMoonNut[3]=EcMoon[3]+nutat[3];EqMoon=equatorial(b,EcMoonNut);b=round(EcMoonNut[1]*RAD2DEG,3);c=round(EcMoonNut[2]* 20RAD2DEG,3);d=round(EcMoonNut[3],0);f=round(EqMoon[1]/15*RAD2DEG,4);k=round(EqMoon[2]*RAD2DEG,3);7<c&&(c=round(c-360,3));return{MnLong:b,MnLat:c,MnDist:d,MnRA:f,MnDec:k}} 21function selenogr(){var b,c,d,f,k,m,h,n,r,g,l,e,p,t,q;b=todayall.getFullYear();k=todayall.getMonth()+1;c=todayall.getDate();f=todayall.getHours()+todayall.getTimezoneOffset()/60;l=todayall.getMinutes();b=day2000(b,k,c,f+l/60)/36525;c=range(280.466+36000.8*b);d=range(357.529+35999*b-1.536E-4*b*b+b*b*b/2449E4);f=(1.915-.004817*b-1.4E-5*b*b)*dsin(d);f+=(.01999-1.01E-4*b)*dsin(2*d);f+=2.9E-4*dsin(3*d);k=.99972/(1+(.01671-4.204E-5*b-1.236E-7*b*b)*dcos(d+f));f=c+f;c=range(125.04-1934.1*b);c=f-.00569-.00478* 22dsin(c);m=(84381.448-46.815*b)/3600;datan2(dsin(f)*dcos(m)-dtan(0)*dsin(m),dcos(f));dasin(dsin(0)*dcos(m)+dcos(0)*dsin(m)*dsin(f));h=range(93.2721+483202*b-.003403*b*b-b*b*b/3526E3);n=range(218.316+481268*b);r=range(125.045-1934.14*b+.002071*b*b+b*b*b/45E4);g=range(134.963+477199*b+.008997*b*b+b*b*b/69700);D2=2*range(297.85+445267*b-.00163*b*b+b*b*b/545900);b=1+(-20954*dcos(g)-3699*dcos(D2-g)-2956*dcos(D2))/385E3;f=b/k/379.168831168831;l=5.128*dsin(h)+.2806*dsin(g+h);l=l+.2777*dsin(g-h)+.1732*dsin(D2- 23h);e=6.289*dsin(g)+1.274*dsin(D2-g)+.6583*dsin(D2);e=e+.2136*dsin(2*g)-.1851*dsin(d)-.1143*dsin(2*h);e+=.0588*dsin(D2-2*g);e=e+.0572*dsin(D2-d-g)+.0533*dsin(D2+g);e+=n;datan2(dsin(e)*dcos(m)-dtan(l)*dsin(m),dcos(e));dasin(dsin(l)*dcos(m)+dcos(l)*dsin(m)*dsin(e));p=range(c+180+180/Math.PI*f*dcos(l)*dsin(c-e));t=f*l;I=1.54242;q=e-r;g=dcos(q)*dcos(l);n=dsin(q)*dcos(l)*dcos(I)-dsin(l)*dsin(I);g=datan2(n,g);d=g-h;m=dasin(-dsin(q)*dcos(l)*dsin(I)-dsin(l)*dcos(I));q=range(p-r);g=dcos(q)*dcos(t);n=dsin(q)* 24dcos(t)*dcos(I)-dsin(t)*dsin(I);g=datan2(n,g);SL=range(g-h);SB=dasin(-dsin(q)*dcos(t)*dsin(I)-dsin(t)*dcos(I));h=90>SL?90-SL:450-SL;h=90<h&&270>h?180-h:90>h?0-h:360-h;g=dcos(l)*dcos(e-c);c=90-datan(g/Math.sqrt(1-g*g));n=k*dsin(c);k=datan2(n,f-k*g);c=(1+dcos(k))/2;k=round(m,1);f=round(d,1);l=round(SB,1);e=round(SL,1);d=round(h,1);c=round(100*c,1);b=round(60.268511*b*6371,0);return{SLatLib:k,SLongLib:f,SLatSun:l,SLongSun:e,SLongTerm:d,"\u041cLum":c,SDist:b}} 25var DEG2RAD=Math.PI/180,RAD2DEG=180/Math.PI,TwoPi=2*Math.PI;function dsin(b){return Math.sin(Math.PI/180*b)}function dcos(b){return Math.cos(Math.PI/180*b)}function dtan(b){return Math.tan(Math.PI/180*b)}function dasin(b){return 180/Math.PI*Math.asin(b)}function dacos(b){return 180/Math.PI*Math.acos(b)}function datan(b){return 180/Math.PI*Math.atan(b)}function datan2(b,c){var d;if(0==c&&0==b)return 0;d=datan(b/c);0>c&&(d+=180);0>b&&0<c&&(d+=360);return d} 26function Moon(b){b/=36525;var c=b*b,d=c*b,f=d*b;ecliptic=[0,0,0,0];var k=angle(297.8502042+445267.1115168*b-.00163*c+d/545868+f/113065E3),m=angle(357.5291092+35999.0502909*b-1.536E-4*c+d/2449E4),h=angle(134.9634114+47
267198.8676313*b+.008997*c-d/3536E3+f/14712E3),n=angle(218.3164591+481267.88134236*b-.0013268*c+d/538841-f/65194E3),d=angle(93.2720993+483202.0175273*b-.0034029*c-d/3526E3+f/86331E4);DcA=[0,2,2,0,0,0,2,2,2,2,0,1,0,2,0,0,4,0,4,2,2,1,1,2,2,4,2,0,2,2,1,2,0,0,2,2,2,4,0,3,2,4,0,2,2,2,4,0,4, 271,2,0,1,3,4,2,0,1,2,2];McA=[0,0,0,0,1,0,0,-1,0,-1,1,0,1,0,0,0,0,0,0,1,1,0,1,-1,0,0,0,1,0,-1,0,-2,1,2,-2,0,0,-1,0,0,1,-1,2,2,1,-1,0,0,-1,0,1,0,1,0,0,-1,2,1,0,0];MpcA=[1,-1,0,2,0,0,-2,-1,1,0,-1,0,1,0,1,1,-1,3,-2,-1,0,-1,0,1,2,0,-3,-2,-1,-2,1,0,2,0,-1,1,0,-1,2,-1,1,-2,-1,-1,-2,0,1,4,0,-2,0,2,1,-2,-3,2,1,-1,3,-1];FcA=[0,0,0,0,0,2,0,0,0,0,0,0,0,-2,2,-2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,-2,2,0,2,0,0,0,0,0,0,-2,0,0,0,0,-2,-2,0,0,0,0,0,0,0,-2];ScA=[6288774,1274027,658314,213618,-185116,-114332,58793, 2857066,53322,45758,-40923,-34720,-30383,15327,-12528,10980,10675,10034,8548,-7888,-6766,-5163,4987,4036,3994,3861,3665,-2689,-2602,2390,-2348,2236,-2120,-2069,2048,-1773,-1595,1215,-1110,-892,-810,759,-713,-700,691,596,549,537,520,-487,-399,-381,351,-340,330,327,-323,299,294];ScAR=[-20905355,-3699111,-2955968,-569925,48888,-3149,246158,-152138,-170733,-204586,-129620,108743,104755,10321,0,79661,-34782,-23210,-21636,24208,30824,-8379,-16675,-12831,-10445,-11650,14403,-7003,0,10056,6322,-9884,5751,0, 29-4950,4130,0,-3958,0,3258,2616,-1897,-2117,2354,0,0,-1423,-1117,-1571,-1739,0,-4421,0,0,0,0,1165,0,0,8752];DcB=[0,0,0,2,2,2,2,0,2,0,2,2,2,2,2,2,2,0,4,0,0,0,1,0,0,0,1,0,4,4,0,4,2,2,2,2,0,2,2,2,2,4,2,2,0,2,1,1,0,2,1,2,0,4,4,1,4,1,4,2];McB=[0,0,0,0,0,0,0,0,0,0,-1,0,0,1,-1,-1,-1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,-1,0,0,0,0,1,1,0,-1,-2,0,1,1,1,1,1,0,-1,1,0,-1,0,0,0,-1,-2];MpcB=[0,1,1,0,-1,-1,0,2,1,2,0,-2,1,0,-1,0,-1,-1,-1,0,0,-1,0,1,1,0,0,3,0,-1,1,-2,0,2,1,-2,3,2,-3,-1,0,0,1,0,1,1,0,0,-2,-1,1,-2,2,-2, 30-1,1,1,-1,0,0];FcB=[1,1,-1,-1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,-1,-1,1,3,1,1,1,-1,-1,-1,1,-1,1,-3,1,-3,-1,-1,1,-1,1,-1,1,1,1,1,-1,3,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,1];ScB=[5128122,280602,277693,173237,55413,46271,32573,17198,9266,8822,8216,4324,4200,-3359,2463,2211,2065,-1870,1828,-1794,-1749,-1565,-1492,-1475,-1410,-1344,-1335,1107,1021,833,777,671,607,596,491,-451,439,422,421,-366,-351,331,315,302,-283,-229,223,223,-220,-220,-185,181,-177,176,166,-164,132,-119,115,107];for(var c=1-.002516* 31b-7.4E-6*c,f=c*c,r=0,g=0,l=0,e=0;e<ScA.length;++e){var p=1;if(1==MpcA[e]||-1==MpcA[e])p=c;else if(2==MpcA[e]||-2==MpcA[e])p=f;r+=ScA[e]*Math.sin(DcA[e]*k+McA[e]*p*m+MpcA[e]*h+FcA[e]*d);l+=ScAR[e]*Math.cos(DcA[e]*k+McA[e]*p*m+MpcA[e]*h+FcA[e]*d)}for(e=0;e<ScB.length;++e){p=1;if(1==MpcB[e]||-1==MpcB[e])p=c;else if(2==MpcB[e]||-2==MpcB[e])p=f;g+=ScB[e]*Math.sin(DcB[e]*k+McB[e]*p*m+MpcB[e]*h+FcB[e]*d)}A1=angle(119.75+131.849*b);A2=angle(53.09+479264.29*b);A3=angle(313.45+481266*b);r+=3958*Math.sin(A1)+ 321962*Math.sin(n-d)+318*Math.sin(A2);g+=382*Math.sin(A3)-2235*Math.sin(n)+175*Math.sin(A1-d)+175*Math.sin(A1+d)+127*Math.sin(n-h)-115*Math.sin(n+h);ecliptic[1]=modrad(n+angle(r/1E6));ecliptic[2]=angle(g/1E6);ecliptic[3]=l/1E3+385000.56;return ecliptic}function obliquity(b){b/=36525;return angle((84381.448+b*(-46.815+b*(-5.9E-4+.001813*b)))/3600)} 33function nutation(b){var c=b/36525;b=angle(125.04452-1934.136261*c);var d=angle(218.3165+481267.8813*c),f=angle(280.4665+36000.7698*c),c=-17.2*Math.sin(b)-1.32*Math.sin(2*f)-.23*Math.sin(2*d)+.21*Math.sin(2*b);b=9.2*Math.cos(b)+.57*Math.cos(2*f)+.1*Math.cos(2*d)-.09*Math.cos(2*b);nut=[0,0,0,0];nut[1]=c*DEG2RAD/3600;nut[2]=b*DEG2RAD/3600;return nut} 34function equatorial(b,c){var d=obliquity(b),f=Math.cos(d),d=Math.sin(d),k=Math.sin(c[1]),m=k*f-Math.tan(c[2])*d;eq=[0,0,0,0];eq[1]=ratan2(m,Math.cos(c[1]));eq[2]=Math.asin(Math.sin(c[2])*f+Math.cos(c[2])*d*k);eq[3]=c[3];return eq}function ratan2(b,c){var d;if(0==c&&0==b)return 0;d=Math.atan(b/c);0>c&&(d+=Math.PI);0>b&&0<c&&(d+=2*Math.PI);return d}function angle(b){return range(b)*DEG2RAD}function modrad(b){b/=TwoPi;b=TwoPi*(b-ipart(b));0>b&&(b+=TwoPi);return b} 35function day2000(b,c,d,f){if(1==c||2==c)--b,c+=12;a=Math.floor(b/100);return 2-a+Math.floor(a/4)+Math.floor(365.25*b)+Math.floor(30.6001*(c+1))-730550.5+d+f/24}function isleap(b){var c;c=0;0==b%4&&(c=1);0==b%100&&(c=0);0==b%400&&(c=1);return c}function goodmonthday(b,c,d){var f;f=isleap(b);b=1;0==d&&(b=0);2==c&&1==f&&29<d&&(b=0);
352==c&&28<d&&0==f&&(b=0);(4==c||6==c||9==c||11==c)&&30<d&&(b=0);31<d&&(b=0);return b}function ipart(b){return 0<b?Math.floor(b):Math.ceil(b)}function fpart(b){return b%1} 36function range(b){b/=360;b=360*(b-ipart(b));0>b&&(b+=360);return b}function round(b,c){return Math.round(b*Math.pow(10,c))/Math.pow(10,c)}function zz(b){return(""+Mps.MnLong).replace(".",",")}; 37 38function showDate(todayall){ 39var a=todayall,c="#3490F8",d=""+a.getHours(),d=2>d.length?"0"+d:d,e=""+a.getMinutes(),e=2>e.length?"0"+e:e,b=""+a.getSeconds(),b=2>b.length?"0"+b:b,f=""+a.getMonth(), pf=''+(a.getMonth()+1),h=""+a.getFullYear(),g=""+a.getDay();if(1>g||5<g)c="#F00";a=""+a.getDate();a=2>a.length?"0"+a:a; //*2017*/ if(f==1&&a==20)c="#3490F8"; 40if((f==0&&a<9)||(f==1&&a==23)||(f==2&&a==8)||(f==4&&(a==1||a==9))||(f==5&&a==12)||(a==4&&f==10) )c="#F00"; 41if(h==2019&&((f==4&&(a==2||a==3))||(f==4&&a==10)))c="#F00"; 42if ( h==2020&& ( (f==1&&a==24)||(f==2&&(a==9||a==30||a==31))||(f==3)||(f==4&&(a==4||a==5))||(f==4&&a==11) ) )c="#F00"; 43var picD; picD = ''+a+'.'+ (pf=2>pf.length?"0"+pf:pf) +'.'+h + ' '+ d + ':'+e; 44if (phazreg==1) picD = '<b>'+picD+'</b>';// #CC9900 <b style="color: #b5ff77;"> <b style="color: #EECF00;"> 45document.getElementById("picDate").innerHTML=picD; 46 47}; 48 49 50function phaza() 51{ 52 53showDate( todayall); 54 55var Mps = getPos(); 56var slg = selenogr(); 57 58//----------------------------------------------- 59 60//-------------------------------------------------------------------------- 61 62var now=todayall; //(2017, 02, 23, 01, 0, 0, 0) //var now=new Date(2017, 01, 27, 7, 0, 0, 0); 63var Year=getNowFullYear(now); 64var Month=now.getMonth()+1; 65var Day=now.getDate(); 66var TCR=now.getTimezoneOffset(); 67var Place = "ÐоÑква"; 68var Lat = +55.83; 69var Long = 37.63; 70var TCR = 3; // ÐопÑавка вÑеменной Ð·Ð¾Ð½Ñ 71var TCRname="MSK"; // Ðаименование Ð·Ð¾Ð½Ñ 72 73var LunPh=MoonPhase(Year,Month,Day,(now.getHours()+(now.getMinutes()-24)/60-TCR)); //0-TCR - Moon phase 74 75var JDm=MoonMon(Year,Month,Day,0), CmD = julian(Year,Month,Day,now.getHours()), NmD = JDm.newm, FmD = JDm.fullm, Dnnm=NmD;//(Year,Month,Day) (2017,3,29.[-1,0,1}) 76if (NmD < CmD) { JDm=MoonMon(Year,Month,Day,1); NmD = JDm.newm; 77if ( FmD < CmD) { FmD = JDm.fullm; 78}; 79} 80else { Dnnm = MoonMon(Year,Month,Day,-1).newm; }; 81 82 document.getElementById("svet").innerHTML = ''+LunPh.lum +"%"; 83 84 var strqu ='', pzn, strfn; //strstad, strfazn, strrus=fzrus(0), strrusold=fzrusOld(0); 85 if (LunPh.kt>0 && LunPh.kt<0.25) {strfn='1 ÑеÑвеÑÑÑ'; strqu =fzstat(0)}; 86 if (LunPh.lum<2) {pzn=0; strqu =''}; 87 if (LunPh.lum>=2 && LunPh.lum<49) {pzn=1;}; 88 if (LunPh.kt>0.25 && LunPh.kt<0.5) {strfn='2 ÑеÑвеÑÑÑ'; strqu =fzstat(1)}; 89 if (LunPh.lum>=49 && LunPh.lum<51) {pzn=2; strqu =''}; 90 if (LunPh.lum>=51 && LunPh.lum<99) {pzn=3;}; 91 if (LunPh.lum>=99) {pzn=4; strqu =''}; 92 idt=window.location.href;//d в минÑÑÐ°Ñ 93 if (LunPh.kt>0.5) { 94 if (LunPh.kt<=0.75) {strfn='3 ÑеÑвеÑÑÑ'; strqu =fzstat(2)}; 95 if (LunPh.lum>=51 && LunPh.lum<99) {pzn=5;}; 96 if (LunPh.kt>0.75 && LunPh.kt<=1) {strfn='4 ÑеÑвеÑÑÑ'; strqu =fzstat(3)}; 97 if (LunPh.lum>=49 && LunPh.lum<51) {pzn=6; strqu =''}; 98 if (LunPh.lum>=2 && LunPh.lum<49) {pzn=7;}; 99 }; 100 101 document.getElementById("stadiya").innerHTML = fznam(pzn); 102 document.getElementById("phase_name").innerHTML = strfn; 103 // id="vidzcopÑ">© 2016 - 2019 abc2home.ru <span style="float:right">Ð¤Ð°Ð·Ñ ÐÑнÑ</span> 104 document.getElementById("vidzcopÑ").innerHTML = '© 2016-2019 abc2home.ru <a href="http://www.abc2home.ru/lunnyj_calendar/faza_luny_seychas.html" style="float:right" target="_blank">Ð¤Ð°Ð·Ñ ÐÑнÑ</a>'; 105 106 107 var mnn = JDtoCD(Dnnm), MnEdg = new Date(mnn.yy, mnn.mm-1, mnn.dd, mnn.hh, mnn.hm, mnn.hs), MnEdghm = Math.round(todayall.getTime() - MnEdg.getTime()-TCR*60*60*1000)/60000, Tst=''; 108 109 110var Nzod = Math.floor(Mps.MnLong/30), wq=Mps.MnLong, eqmm, Nsoz; 111 document.getElementById("zodiaÑ_name").innerHTML = zod.split(',')[Nzod]; if ((idt.slice(12,16) !== 'bc2h')&&(idt.slice(12,16)!== 'ites')) {('ÑÑо за Ñ Ð°Ðº?').reload();}; 112 document.getElementById("zodiaÑ-simbol").innerHTML = '<a target="_blank" href="http://www.abc2home.ru/znaki_zodiaka/'+zodur.split(',')[Nzod]+'/"><img src="http://www.abc2home.ru/znaki_zodiaka/img/'+zodur.split(',')[Nzod]+'-simbol.png" width="50" height="50" alt="'+ zod.split(',')[Nzod] +'" /></a>'; 113/* 114 var pvidz = document.getElementById("faza_luny"); 115 var DMnpic = document.getElementById("MnPic"); 116 var CanvDat = DMnpic.getContext('2d'); 117 var IIObj = new Image(); 118 IIObj.src = "http://www.abc2home.ru/images/full_moon.png"; 119 CanvDat.translate(0,0); 120 CanvDat.drawImage(pvidz, 0, 0, 292, 397); 121*/ 122 123dti = LunPh.kt; 124var out1, int2, out2; 125 126if (phazreg==1) { 127setTimeout(phaza,1E3); todayall = new Date(); 128}; 129 document.getElementById("moontime").innerHTML = ''+((phazreg==1)?('<span class="sc2"> ЧаÑÑ </span>'): (' ЧаÑÑ ')); 130if (phazreg==2) { 131setTimeout(phaza,1E3); todayall = new Date(TimeMachine); TimeMachine=TimeMachine+18060500; 132} 133}; 134phaza(); 135 136 137//------------------------------------------------------------------------------------------------------OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 138 139 140 141 142//-------------------------------------------------------------------------------------------------------------------------------------OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 143 144 145function redraw() { 146RL = 125, fdelay=1000; window.onclick = can.init; phazreg=phazreg+1; phaza(); 147 148if (phazreg>
1482) phazreg=0; 149}; 150 151 152function decTomin(f) { var mm; return ((mm = '' + Math.abs(Math.floor(f%1*60))).length<2?'0'+mm: mm) }; 153function fzstat(f) { return "в 1-й ÑеÑвеÑÑи. во 2-й ÑеÑвеÑÑи. в 3-й ÑеÑвеÑÑи. в поÑледней ÑеÑвеÑÑи".split(".")[f] }; 154function fznam(f) { return "ÐоволÑние. РаÑÑÑÑÐ°Ñ ÐÑна. ЧеÑвеÑÑÑ Ñовно. РаÑÑÑÑÐ°Ñ ÐÑна. ÐолнолÑние. УбÑваÑÑÐ°Ñ Ð»Ñна. ÐоÑледнÑÑ ÑеÑвеÑÑÑ. УбÑваÑÑаÑ".split(".")[f] }; 155 156 157function MoonPhase(year,month,day,hours) { 158 // the illuminated percentage from Meeus chapter 46 159 var j=dayno(year,month,day,hours)+2451543.5; 160 var T=(j-2451545.0)/36525; 161 var T2=T*T; 162 var T3=T2*T; 163 var T4=T3*T; 164 // Moons mean elongation Meeus first edition 165 // var D=297.8502042+445267.1115168*T-0.0016300*T2+T3/545868.0-T4/113065000.0; 166 // Moons mean elongation Meeus second edition 167 var D=297.8501921+445267.1114034*T-0.0018819*T2+T3/545868.0-T4/113065000.0; 168 // Moons mean anomaly M' Meeus first edition 169 // var MP=134.9634114+477198.8676313*T+0.0089970*T2+T3/69699.0-T4/14712000.0; 170 // Moons mean anomaly M' Meeus second edition 171 var MP=134.9633964+477198.8675055*T+0.0087414*T2+T3/69699.0-T4/14712000.0; 172 // Suns mean anomaly 173 var M=357.5291092+35999.0502909*T-0.0001536*T2+T3/24490000.0; 174 // phase angle 175 var pa=180.0-D-6.289*sind(MP)+2.1*sind(M)-1.274*sind(2*D-MP) 176 -0.658*sind(2*D)-0.214*sind(2*MP)-0.11*sind(D); 177/* var LPh = {kt:0.1, lum:0.1, an:0.1};*/ 178 var an=rev(pa); 179 var kt=(an/360>0.5)?(1.5-an/360):(0.5-an/360); 180 var lum=Math.round(100.0*(1.0+cosd(pa))/2.0); 181 return {kt,lum,an}; 182} 183 184function MoonMon(year,month,day,dk) { 185 // returns an array of Julian Ephemeris Days (JDE) for 186 // new moon, first quarter, full moon and last quarter 187 // Meeus first edition chapter 47 with only the most larger additional corrections 188 // Meeus code calculates Terrestrial Dynamic Time 189 // TDT = UTC + (number of leap seconds) + 32.184 190 // At the end of June 2015 the 26th leap second was added 191 // 192 var newm, fullm; 193 // k is an integer for new moon incremented by 0.25 for first quarter 0.5 for new etc. 194 var k=Math.floor((year+((month-1)+day/30)/12-2000)*12.3685 +dk); 195 // Time in Julian centuries since 2000.0 196 var T=k/1236.85; 197 // Sun's mean anomaly 198 var E=1-0.002516*T-0.0000074*T*T; 199 // Moons argument of latitude 200 var M, P, F, Omega, JDE0, A = new Array(); 201 JDE0=2451550.09765+29.530588853*k+0.0001337*T*T-0.000000150*T*T*T+0.00000000073*T*T*T*T; 202 // Correct for TDT since 1 July 2015 203 JDE0=JDE0-58.184/(24*60*60); 204 205 var getkoof=function(k) { 206 M=rev(2.5534+29.10535669*k-0.0000218*T*T); 207 // Moon's mean anomaly (M' in Meeus) 208 MP=rev(201.5643+385.81693528*k+0.0107438*T*T+0.00001239*T*T*T-0.00000011*T*T*T); 209 F=rev(160.7108+390.67050274*k-0.0016341*T*T-0.00000227*T*T*T+0.000000011*T*T*T*T); 210 // Longitude of ascending node of lunar orbit 211 Omega=rev(124.7746-1.56375580*k+0.0020691*T*T+0.00000215*T*T*T); 212 // The full planetary arguments include 14 terms, only used the 7 most significant 213 A[1]=rev(299.77+ 0.107408*k-0.009173*T*T); 214 A[2]=rev(251.88+ 0.016321*k); 215 A[3]=rev(251.83+26.651886*k); 216 A[4]=rev(349.42+36.412478*k); 217 A[5]=rev( 84.88+18.206239*k); 218 A[6]=rev(141.74+53.303771*k); 219 A[7]=rev(207.14+ 2.453732*k); 220 }; 221 222 // New moon 223 var c=getkoof(k); 224 var JDE=JDE0 -0.40720*sind(MP) +0.17241*E*sind(M) +0.01608*sind(2*MP) +0.01039*sind(2*F) 225 +0.00739*E*sind(MP-M) -0.00514*E*sind(MP+M) +0.00208*E*E*sind(2*M) -0.00111*sind(MP-2*F) 226 -0.00057*sind(MP+2*F) +0.00056*E*sind(2*MP+M) -0.00042*sind(3*MP) +0.00042*E*sind(M+2*F) 227 +0.00038*E*sind(M-2*F) -0.00024*E*sind(2*MP-M) -0.00017*sind(Omega) -0.00007*sind(MP+2*M); 228 229 newm=JDE+0.000325*sind(A[1])+0.000165*sind(A[2])+0.000164*sind(A[3])+0.000126*sind(A[4]) 230 +0.000110*sind(A[5])+0.000062*sind(A[6])+0.000060*sind(A[7]); 231 232 // Full moon k=k+0.5 233 c=getkoof(k+0.5); 234 JDE=JDE0+29.530588853*0.5; 235 236 JDE=JDE-0.40614*sind(MP) +0.17302*E*sind(M) +0.01614*sind(2*MP) +0.01043*sind(2*F) 237 +0.00734*E*sind(MP-M) -0.00515*E*sind(MP+M) +0.00209*E*E*sind(2*M) -0.00111*sind(MP-2*F) 238 -0.00057*sind(MP+2*F) +0.00056*E*sind(2*MP+M) -0.00042*sind(3*MP) +0.00042*E*sind(M+2*F) 239 +0.00038*E*sind(M-2*F) -0.00024*E*sind(2*MP-M) -0.00017*sind(Omega) -0.00007*sind(MP+2*M); 240 241 fullm=JDE+0.000325*sind(A[1])+0.000165*sind(A[2])+0.000164*sind(A[3])+0.000126*sind(A[4]) 242 +0.000110*sind(A[5])+0.000062*sind(A[6])+0.000060*sind(A[7]); 243 244 return {newm, fullm}; 245} 246//------------------------------------------------------------------------------------------------------------ 247 248function getNowFullYear(now) { 249 var year = now.getYear(); 250 if (year==0) {year=2000}; 251 if (year<1900) {year=year+1900}; 252 return year; 253} 254 255function getDatStr(year,month,day) { 256// provides a locale independent format - year:month:day 257 var datestr = "" + ((day < 10) ? "0" : "") + day +((month < 10) ? ".0" : ".") + month + "."+year; 258 return datestr; 259} 260 261function rev(angle){return angle-Math.floor(angle/360.0)*360.0;} 262function sind(angle){return Math.sin((angle*Math.PI)/180.0);} 263function cosd(angle){return Math.cos((angle*Math.PI)/180.0);} 264function tand(angle){return Math.tan((angle*Math.PI)/180.0);} 265function asind(c){return (180.0/Math.PI)*Math.asin(c);} 266function acosd(c){return (180.0/Math.PI)*Math.acos(c);} 267function atan2d(y,x){return (180.0/Math.PI)*Math.atan(y/x)-180.0*(x<0);} 268 269function dayno(year,month,day,hours) { 270 // Day number is a modified Julian date, day 0 is 2000 January 0.0 271 // which corresponds to a Julian date of 2451543.5 272 var d= 367*year-Math.floor(7*(year+Math.floor((month+9)/12))/4) 273 +Math.floor((275*month)/9)+day-730530+hours/24; 274 return d; 275} 276 277function julian(year,month,day,hours) { 278 return dayno(year,month,day,hours)+2451543.5 279} 280 281function JDtoCD(jd) { 282 // The calendar date from julian date 283 // Returns year, month, day, day of week, hours, minutes, seconds 284 var cdate ={}; 285 var Z=Math.floor(jd+0.5); 286 var F=jd+0.5-Z; 287 if (Z < 2299161){ 288 var A=Z; 289 } else { 290 var alpha=Math.floor((Z-1867216.25)/36524.25); 291 var A=Z+1+alpha-Math.floor(alpha/4); 292 } 293 var B=A+1524; 294 var C=Math.floor((B-122.1)/365.25); 295 var D=Math.floor(365.25*C); 296 var E=Math.floor((B-D)/30.6001); 297 var d=B-D-Math.floor(30.6001*E)+F; 298 if (E < 14) {var month=E-1;} else {var month=E-13;} 299 if ( month>2) {var year=C-4716;} else {var year=C-4715;} 300 var day=Math.floor(d); 301 var h=(d-day)*24; 302 var hours=Math.floor(h); 303 var m=(h-hours)*60; 304 var minutes=Math.floor(m); 305 var seconds=Math.round((m-minutes)*60); 306 if (seconds >= 60) {minutes=minutes+1;seconds=seconds-60;} 307 if (minutes >= 60) {hours=hours+1;minutes=0;} 308 var dw=Math.floor(jd+1.5)-7*Math.floor((jd+1.5)/7);
309 return cdate = {yy:year,mm:month,dd:day,wd:dw,hh:hours,hm:minutes,hs:seconds}; 310}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.