UNPKG

@js-sugar/date

Version:

A multi-calendar, tree-shakable, extensible, immutable and lightweight date library for JavaScript

1 lines 6.37 kB
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports["jss-date"]=n():t["jss-date"]=n()}(this,(function(){return(this.webpackChunkjss_date=this.webpackChunkjss_date||[]).push([[136],{256:(t,n,e)=>{"use strict";e.r(n),e.d(n,{PersianCalendar:()=>PersianCalendar});var r=e(157);class AlgoMap{constructor(t,n){this._lowestYear=t,this._algorithm=n}}const a=360,o=86400,u=1e3,s=[-2e-5,297e-6,.025184,-.181133,.55304,-.861938,.677066,-.212591],c=[-9e-6,.003844,.083563,.865736,4.867575,15.845535,31.332267,38.291999,28.316289,11.636204,2.043794],i=[8.118780842,-.005092142,.003336121,-266484e-10],h=[196.58333,-4.0675,.0219167],f=[280.46645,36000.76983,3032e-7],M=[357.5291,35999.0503,-1559e-7,-48e-8],m=[.016708617,-42037e-9,-1.236e-7],l=[124.9,-1934.134,.002063],d=[201.11,72001.5377,57e-5],p=365.242189,g=1.0145616361111112,w=[T(23,26,21.448),T(0,0,-46.815),T(0,0,-59e-5),T(0,0,.001813)],y=[new AlgoMap(2020,0),new AlgoMap(1988,1),new AlgoMap(1900,2),new AlgoMap(1800,3),new AlgoMap(1700,4),new AlgoMap(1620,5),new AlgoMap(Number.MIN_VALUE,0)];function _(t){return t*Math.PI/180}function A(t){return Math.sin(_(t))}function Y(t){return Math.cos(_(t))}function T(t,n,e){return(e/60+n)/60+t}function P(t){const n=new Date(function(t){const n=Math.trunc(Math.floor(t)*o*u);return(0,r.getJsTimestamp)(n)}(t));return n.getFullYear()}function b(t){var n,e;return(t=(n=t)-(e=a)*Math.floor(n/e))<0&&(t+=a),t}function C(t){return t/a}function j(t,n){let e=t[0],r=1;for(let a=1;a<t.length;a++)r*=n,e+=t[a]*r;return e}function D(t){return(N(new Date(`${t}/7/1`).getTime())-693595)/36525}function E(t){const n=.5+(Math.trunc(N(new Date(`${t}/1/1`).getTime()))-660723);return(Math.pow(n,2)/41048480-15)/o}function I(t){const n=P(t);return y.forEach((t=>{if(t._lowestYear<=n)switch(t._algorithm){case 0:return E(n);case 1:return(n-1933)/o;case 2:return function(t){const n=D(t);return j(s,n)}(n);case 3:return function(t){const n=D(t);return j(c,n)}(n);case 4:return function(t){return j(i,t-1700)/o}(n);case 5:return function(t){return j(h,t-1600)/o}(n)}})),E(n)}function v(t){return(t+I(t)-730120.5)/36525}function R(t){return-1==Math.sign(t)}function k(t){const n=v(t),e=j(f,n),r=j(M,n),a=j(m,n),o=j(w,n);const u=(s=o/2,Math.tan(_(s)));var s;const c=u*u,i=(c*A(2*e)-2*a*A(r)+4*a*c*A(r)*Y(2*e)-.5*Math.pow(c,2)*A(4*e)-1.25*Math.pow(a,2)*A(2*r))/(2*Math.PI);return h=Math.min(Math.abs(i),.5),l=i,R(h)==R(l)?h:-h;var h,l}function S(t,n){return function(t,n){return t-k(t-C(n))}(t+.5,n)-C(n)}function x(t){return b(t+180)-180}function L(t){return S(t,x(52.5))}function U(t,n,e,r){return n*A(e+r*t)}function J(t){const n=v(t),e=282.7771834+36000.76953744*n+5729577951308232e-21*function(t){let n=0;return n+=U(t,403406,270.54861,.9287892),n+=U(t,195207,340.19128,35999.1376958),n+=U(t,119433,63.91854,35999.4089666),n+=U(t,112392,331.2622,35998.7287385),n+=U(t,3891,317.843,71998.20261),n+=U(t,2819,86.631,71998.4403),n+=U(t,1721,240.052,36000.35726),n+=U(t,660,310.26,71997.4812),n+=U(t,350,247.23,32964.4678),n+=U(t,334,260.87,-19.441),n+=U(t,314,297.82,445267.1117),n+=U(t,268,343.14,45036.884),n+=U(t,242,166.79,3.1008),n+=U(t,234,81.53,22518.4434),n+=U(t,158,3.5,-19.9739),n+=U(t,132,132.75,65928.9345),n+=U(t,129,182.95,9038.0293),n+=U(t,114,162.03,3034.7684),n+=U(t,99,29.8,33718.148),n+=U(t,93,266.4,3034.448),n+=U(t,86,249.2,-2280.773),n+=U(t,78,157.6,29929.992),n+=U(t,72,257.8,31556.493),n+=U(t,68,185.1,149.588),n+=U(t,64,69.9,9037.75),n+=U(t,46,8,107997.405),n+=U(t,38,197.1,-4444.176),n+=U(t,37,250.4,151.771),n+=U(t,32,65.3,67555.316),n+=U(t,29,162.7,31556.08),n+=U(t,28,341.5,-4561.54),n+=U(t,27,291.6,107996.706),n+=U(t,27,98.5,1221.655),n+=U(t,25,146.7,62894.167),n+=U(t,24,110,31437.369),n+=U(t,21,5.2,14578.298),n+=U(t,21,342.6,-31931.757),n+=U(t,20,230.9,34777.243),n+=U(t,18,256.1,1221.999),n+=U(t,17,45.3,62894.511),n+=U(t,14,242.9,-4442.039),n+=U(t,13,115.2,107997.909),n+=U(t,13,151.8,119.066),n+=U(t,13,285.3,16859.071),n+=U(t,12,53.3,-4.578),n+=U(t,10,126.6,26895.292),n+=U(t,10,205.7,-39.127),n+=U(t,10,85.9,12297.536),n+=U(t,10,146.1,90073.778),n}(n);return x(e+(974e-7*Y(177.63+35999.01848*n)-.005575)+function(t){const n=j(l,t),e=j(d,t);return-.004778*A(n)-3667e-7*A(e)}(n))}function O(t,n){const e=n-g*function(t){return t<0?t+a:t}(x(J(n)-t)),r=x(J(e)-t);return Math.min(n,e-g*r)}function N(t){return Math.trunc((0,r.getCalendarTimestamp)(t)/864e5)}function $(t){const n=O(0,L(t)),e=Math.trunc(Math.floor(n))-1,r=e+3;let a=e;for(;a!=r;){const t=J(L(a));if(0<=t&&t<=2)break;a++}return a-1}const F=19603728e6/r.MS_PER_DAY,V=[0,31,62,93,124,155,186,216,246,276,306,336,366];function X(t){return--t,V[t]}function q(t,n,e){if(t>=1&&t<=r.MAX_YEAR&&n>=1&&n<=12){const r=X(n)+e-1,a=Math.trunc(p*(t-1));let o=$(F+a+180);return o+=r,o}(0,r.throwInvalidParam)()}function z(t){const n=q(t.year,t.month,t.day);if(n>=0){let e=n*r.MS_PER_DAY+(0,r.timeToTicks)(t.hour,t.minute,t.second,t.ms);return(0,r.getJsTimestamp)(e)}(0,r.throwInvalidParam)()}function B(t){let n,e={year:0,month:0,day:0,hour:0,minute:0,second:0,ms:0};n=Math.trunc(t/r.MS_PER_DAY)+1;const a=$(n),o=Math.floor((a-F)/p+.5)+1,u=Math.trunc(n-N(z({year:o,month:1,day:1,hour:0,minute:0,second:0,ms:0})));return e.year=o,e.month=function(t){let n=0;for(;t>V[n];)n++;return n}(u),e.day=u-X(e.month),e}class PersianCalendar extends r.Calendar{constructor(t){super(t,"persian")}addMonths(t,n){let e=this.getUnits(t),a=e.year,o=e.month,u=e.day;const s=o-1+n;s>=0?(o=s%12+1,a=Math.trunc(a+s/12)):(o=12+(s+1)%12,a+=Math.trunc((s-11)/12));const c=this.daysInMonth(a,o);u>c&&(u=c);const i=q(a,o,u)*r.MS_PER_DAY+(0,r.getCalendarTimestamp)(t)%r.MS_PER_DAY;return(0,r.getJsTimestamp)(i)}addYears(t,n){return this.addMonths(t,12*n)}dayOfYear(t){let n=Math.trunc((0,r.getCalendarTimestamp)(t)/r.MS_PER_DAY)+1;const e=$(n),a=Math.floor((e-F)/p+.5)+1;return Math.trunc(n-N(this.getTimestamp({year:a,month:1,day:1,hour:0,minute:0,second:0,ms:0})))}daysInMonth(t,n){let e=V[n]-V[n-1];return 12!=n||this.isLeapYear(t)||--e,e}daysInYear(t){return this.isLeapYear(t)?366:365}isLeapYear(t){return q(t+1,1,1)-q(t,1,1)==366}getTimestamp(t){return z(t)}getUnits(t){return t=(0,r.getCalendarTimestamp)(t),Object.assign(Object.assign({},B(t)),(0,r.getTimeUnits)(t))}}}},t=>{"use strict";var n;return n=256,t(t.s=n)}])}));