UNPKG

carbonjs

Version:

Javascript date library alternative to Moment.js with the same modern API

1 lines 6.51 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.J2000=2451545,exports.JulianCentury=36525,exports.JulianMillennium=10*exports.JulianCentury,exports.AstronomicalUnit=149597870,exports.TropicalYear=365.24219878,exports.dtr=(t=>t*Math.PI/180),exports.rtd=(t=>180*t/Math.PI),exports.fixangle=(t=>t-360*Math.floor(t/360)),exports.fixangr=(t=>t-2*Math.PI*Math.floor(t/(2*Math.PI))),exports.dsin=(t=>Math.sin(exports.dtr(t))),exports.dcos=(t=>Math.cos(exports.dtr(t))),exports.mod=((t,e)=>t-e*Math.floor(t/e)),exports.oterms=[-4680.93,-1.55,1999.25,-51.38,-249.67,-39.05,7.12,27.87,5.79,2.45],exports.obliqeq=(t=>{const e=(t-exports.J2000)/(100*exports.JulianCentury);let o=e,r=23.43929111111111;if(Math.abs(e)<1)for(let t=0;t<10;t++)r+=exports.oterms[t]/3600*o,o*=e;return r}),exports.nutArgMult=[0,0,0,0,1,-2,0,0,2,2,0,0,0,2,2,0,0,0,0,2,0,1,0,0,0,0,0,1,0,0,-2,1,0,2,2,0,0,0,2,1,0,0,1,2,2,-2,-1,0,2,2,-2,0,1,0,0,-2,0,0,2,1,0,0,-1,2,2,2,0,0,0,0,0,0,1,0,1,2,0,-1,2,2,0,0,-1,0,1,0,0,1,2,1,-2,0,2,0,0,0,0,-2,2,1,2,0,0,2,2,0,0,2,2,2,0,0,2,0,0,-2,0,1,2,2,0,0,0,2,0,-2,0,0,2,0,0,0,-1,2,1,0,2,0,0,0,2,0,-1,0,1,-2,2,0,2,2,0,1,0,0,1,-2,0,1,0,1,0,-1,0,0,1,0,0,2,-2,0,2,0,-1,2,1,2,0,1,2,2,0,1,0,2,2,-2,1,1,0,0,0,-1,0,2,2,2,0,0,2,1,2,0,1,0,0,-2,0,2,2,2,-2,0,1,2,1,2,0,-2,0,1,2,0,0,0,1,0,-1,1,0,0,-2,-1,0,2,1,-2,0,0,0,1,0,0,2,2,1,-2,0,2,0,1,-2,1,0,2,1,0,0,1,-2,0,-1,0,1,0,0,-2,1,0,0,0,1,0,0,0,0,0,0,1,2,0,-1,-1,1,0,0,0,1,1,0,0,0,-1,1,2,2,2,-1,-1,2,2,0,0,-2,2,2,0,0,3,2,2,2,-1,0,2,2],exports.nutArgCoeff=[-171996,-1742,92095,89,-13187,-16,5736,-31,-2274,-2,977,-5,2062,2,-895,5,1426,-34,54,-1,712,1,-7,0,-517,12,224,-6,-386,-4,200,0,-301,0,129,-1,217,-5,-95,3,-158,0,0,0,129,1,-70,0,123,0,-53,0,63,0,0,0,63,1,-33,0,-59,0,26,0,-58,-1,32,0,-51,0,27,0,48,0,0,0,46,0,-24,0,-38,0,16,0,-31,0,13,0,29,0,0,0,29,0,-12,0,26,0,0,0,-22,0,0,0,21,0,-10,0,17,-1,0,0,16,0,-8,0,-16,1,7,0,-15,0,9,0,-13,0,7,0,-12,0,6,0,11,0,0,0,-10,0,5,0,-8,0,3,0,7,0,-3,0,-7,0,0,0,-7,0,3,0,-7,0,3,0,6,0,0,0,6,0,-3,0,6,0,-3,0,-6,0,3,0,-6,0,3,0,5,0,0,0,-5,0,3,0,-5,0,3,0,-5,0,3,0,4,0,0,0,4,0,0,0,4,0,0,0,-4,0,0,0,-4,0,0,0,-4,0,0,0,3,0,0,0,-3,0,0,0,-3,0,0,0,-3,0,0,0,-3,0,0,0,-3,0,0,0,-3,0,0,0,-3,0,0,0],exports.nutation=(t=>{const e=(t-2451545)/36525,o=e*e,r=e*o,s=[];let x=0,p=0;s[0]=exports.dtr(297.850363+445267.11148*e-.0019142*o+r/189474),s[1]=exports.dtr(357.52772+35999.05034*e-1603e-7*o-r/3e5),s[2]=exports.dtr(134.96298+477198.867398*e+.0086972*o+r/56250),s[3]=exports.dtr(93.27191+483202.017538*e-.0036825*o+r/327270),s[4]=exports.dtr(125.04452-1934.136261*e+.0020708*o+r/45e4);for(let t=0;t<5;t++)s[t]=exports.fixangr(s[t]);const n=e/10;for(let t=0;t<63;t++){let e=0;for(let o=0;o<5;o++)0!==exports.nutArgMult[5*t+o]&&(e+=exports.nutArgMult[5*t+o]*s[o]);x+=(exports.nutArgCoeff[4*t+0]+exports.nutArgCoeff[4*t+1]*n)*Math.sin(e),p+=(exports.nutArgCoeff[4*t+2]+exports.nutArgCoeff[4*t+3]*n)*Math.cos(e)}return[x/36e6,p/36e6]}),exports.deltaTtab=[121,112,103,95,88,82,77,72,68,63,60,56,53,51,48,46,44,42,40,38,35,33,31,29,26,24,22,20,18,16,14,12,11,10,9,8,7,7,7,7,7,7,8,8,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,16,16,16,15,15,14,13,13.1,12.5,12.2,12,12,12,12,12,12,11.9,11.6,11,10.2,9.2,8.2,7.1,6.2,5.6,5.4,5.3,5.4,5.6,5.9,6.2,6.5,6.8,7.1,7.3,7.5,7.6,7.7,7.3,6.2,5.2,2.7,1.4,-1.2,-2.8,-3.8,-4.8,-5.5,-5.3,-5.6,-5.7,-5.9,-6,-6.3,-6.5,-6.2,-4.7,-2.8,-.1,2.6,5.3,7.7,10.4,13.3,16,18.2,20.2,21.1,22.4,23.5,23.8,24.3,24,23.9,23.9,23.7,24,24.3,25.3,26.2,27.3,28.2,29.1,30,30.7,31.4,32.2,33.1,34,35,36.5,38.3,40.2,42.2,44.5,46.5,48.5,50.5,52.2,53.8,54.9,55.8,56.9,58.3,60,61.6,63,65,66.6],exports.deltat=(t=>{let e;if(t>=1620&&t<=2e3){const o=Math.floor((t-1620)/2),r=(t-1620)/2-o;e=exports.deltaTtab[o]+(exports.deltaTtab[o+1]-exports.deltaTtab[o])*r}else{const o=(t-2e3)/100;t<948?e=2177+497*o+44.1*o*o:(e=102+102*o+25.3*o*o,t>2e3&&t<2100&&(e+=.37*(t-2100)))}return e}),exports.EquinoxpTerms=[485,324.96,1934.136,203,337.23,32964.467,199,342.08,20.186,182,27.85,445267.112,156,73.14,45036.886,136,171.52,22518.443,77,222.54,65928.934,74,296.72,3034.906,70,243.58,9037.513,58,119.81,33718.147,52,297.17,150.678,50,21.02,2281.226,45,247.54,29929.562,44,325.15,31555.956,29,60.93,4443.417,18,155.12,67555.328,17,288.79,4562.452,16,198.04,62894.029,14,199.76,31436.921,12,95.39,14577.848,12,287.11,31931.756,12,320.81,34777.259,9,227.73,1222.114,8,15.45,16859.074],exports.JDE0tab1000=[[1721139.29189,365242.1374,.06134,.00111,-71e-5],[1721233.25401,365241.72562,-.05323,.00907,25e-5],[1721325.70455,365242.49558,-.11677,-.00297,74e-5],[1721414.39987,365242.88257,-.00769,-.00933,-6e-5]],exports.JDE0tab2000=[[2451623.80984,365242.37404,.05169,-.00411,-57e-5],[2451716.56767,365241.62603,.00325,.00888,-3e-4],[2451810.21715,365242.01767,-.11575,.00337,78e-5],[2451900.05952,365242.74049,-.06223,-.00823,32e-5]],exports.equinox=((t,e)=>{let o,r;t<1e3?(o=exports.JDE0tab1000,r=t/1e3):(o=exports.JDE0tab2000,r=(t-2e3)/1e3);const s=o[e][0]+o[e][1]*r+o[e][2]*r*r+o[e][3]*r*r*r+o[e][4]*r*r*r*r,x=(s-2451545)/36525,p=35999.373*x-2.47,n=1+.0334*exports.dcos(p)+7e-4*exports.dcos(2*p);let a=0;for(let t=0,e=0;t<24;t++)a+=exports.EquinoxpTerms[e]*exports.dcos(exports.EquinoxpTerms[e+1]+exports.EquinoxpTerms[e+2]*x),e+=3;return s+1e-5*a/n}),exports.sunpos=(t=>{const e=(t-exports.J2000)/exports.JulianCentury,o=e*e;let r=280.46646+36000.76983*e+3032e-7*o;r=exports.fixangle(r);let s=357.52911+35999.05029*e+-1537e-7*o;s=exports.fixangle(s);const x=.016708634+-42037e-9*e+-1.267e-7*o,p=(1.914602+-.004817*e+-14e-6*o)*exports.dsin(s)+(.019993-101e-6*e)*exports.dsin(2*s)+289e-6*exports.dsin(3*s),n=r+p,a=s+p,l=1.000001018*(1-x*x)/(1+x*exports.dcos(a)),i=125.04-1934.136*e,d=n+-.00569+-.00478*exports.dsin(i),u=exports.obliqeq(t),f=u+.00256*exports.dcos(i);let c=exports.rtd(Math.atan2(exports.dcos(u)*exports.dsin(n),exports.dcos(n)));c=exports.fixangle(c);const M=exports.rtd(Math.asin(exports.dsin(u)*exports.dsin(n)));let h=exports.rtd(Math.atan2(exports.dcos(f)*exports.dsin(d),exports.dcos(d)));return[r,s,x,p,n,a,l,d,c,M,h=exports.fixangle(h),exports.rtd(Math.asin(exports.dsin(f)*exports.dsin(d)))]}),exports.equationOfTime=(t=>{const e=(t-exports.J2000)/exports.JulianMillennium;let o=280.4664567+360007.6982779*e+.03032028*e*e+e*e*e/49931+-e*e*e*e/15300+-e*e*e*e*e/2e6;o=exports.fixangle(o);const r=exports.sunpos(t)[10],s=exports.nutation(t)[0],x=exports.obliqeq(t)+exports.nutation(t)[1];let p=o+-.0057183+-r+s*exports.dcos(x);return p-=20*Math.floor(p/20),p/=1440});