j-date
Version:
Date class implementation in Jalali calendar
1 lines • 7.19 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("JDate",[],e):"object"==typeof exports?exports.JDate=e():t.JDate=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){(function(t){"use strict";function r(t,e,n,i,u,d,_){if("string"==typeof t){if(this._d=(0,s.parseDate)((0,o.digits_fa2en)(t),!0),!this._d)throw new Error("Cannot parse date string")}else if(0===arguments.length)this._d=new Date;else if(1===arguments.length)this._d=new Date(t instanceof r?t._d:t);else{var c=(0,a.jd_to_gregorian)((0,a.persian_to_jd_fixed)(t,(e||0)+1,n||1));this._d=new Date(c[0],c[1]-1,c[2],i||0,u||0,d||0,_||0)}this._date=this._d,this._cached_date_ts=null,this._cached_date=[0,0,0],this._cached_utc_date_ts=null,this._cached_utc_date=[0,0,0]}Object.defineProperty(e,"__esModule",{value:!0}),e.JDate=void 0;var i,a=n(1),s=n(3),o=n(4);t.Date;i=r.prototype,i._persianDate=function(){return this._cached_date_ts!=+this._d&&(this._cached_date_ts=+this._d,this._cached_date=(0,a.jd_to_persian)((0,a.gregorian_to_jd)(this._d.getFullYear(),this._d.getMonth()+1,this._d.getDate()))),this._cached_date},i._persianUTCDate=function(){return this._cached_utc_date_ts!=+this._d&&(this._cached_utc_date_ts=+this._d,this._cached_utc_date=(0,a.jd_to_persian)((0,a.gregorian_to_jd)(this._d.getUTCFullYear(),this._d.getUTCMonth()+1,this._d.getUTCDate()))),this._cached_utc_date},i._setPersianDate=function(t,e,n){var r=this._persianDate();r[t]=e,void 0!==n&&(r[2]=n);var i=(0,a.jd_to_gregorian)((0,a.persian_to_jd_fixed)(r[0],r[1],r[2]));return this._d.setFullYear(i[0]),this._d.setMonth(i[1]-1,i[2])},i._setUTCPersianDate=function(t,e,n){var r=this._persianUTCDate();void 0!==n&&(r[2]=n),r[t]=e;var i=(0,a.jd_to_gregorian)((0,a.persian_to_jd_fixed)(r[0],r[1],r[2]));return this._d.setUTCFullYear(i[0]),this._d.setUTCMonth(i[1]-1,i[2])},i.getDate=function(){return this._persianDate()[2]},i.getMonth=function(){return this._persianDate()[1]-1},i.getFullYear=function(){return this._persianDate()[0]},i.getUTCDate=function(){return this._persianUTCDate()[2]},i.getUTCMonth=function(){return this._persianUTCDate()[1]-1},i.getUTCFullYear=function(){return this._persianUTCDate()[0]},i.setDate=function(t){return this._setPersianDate(2,t)},i.setFullYear=function(t){return this._setPersianDate(0,t)},i.setMonth=function(t,e){return this._setPersianDate(1,t+1,e)},i.setUTCDate=function(t){return this._setUTCPersianDate(2,t)},i.setUTCFullYear=function(t){return this._setUTCPersianDate(0,t)},i.setUTCMonth=function(t,e){return this._setUTCPersianDate(1,t+1,e)},i.toLocaleString=function(){return this.getFullYear()+"/"+(0,o.pad2)(this.getMonth()+1)+"/"+(0,o.pad2)(this.getDate())+" "+(0,o.pad2)(this.getHours())+":"+(0,o.pad2)(this.getMinutes())+":"+(0,o.pad2)(this.getSeconds())},r.now=function(){return Date.now()},r.parse=function(t){return new r(t).getTime()},r.UTC=function(t,e,n,r,i,s,o){var u=(0,a.jd_to_gregorian)((0,a.persian_to_jd_fixed)(t,e+1,n||1));return Date.UTC(u[0],u[1]-1,u[2],r||0,i||0,s||0,o||0)},["getHours","getMilliseconds","getMinutes","getSeconds","getTime","getUTCDay","getUTCHours","getTimezoneOffset","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","setHours","setMilliseconds","setMinutes","setSeconds","setTime","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCSeconds","toDateString","toISOString","toJSON","toString","toLocaleDateString","toLocaleTimeString","toTimeString","toUTCString","valueOf","getDay"].forEach(function(t){i[t]=function(){return this._d[t].apply(this._d,arguments)}}),e.default=r,e.JDate=r}).call(e,function(){return this}())},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function i(t){var e=_.default.d2g(t);return[e.gy,e.gm,e.gd]}function a(t,e,n){return _.default.g2d(t,e,n)}function s(t){var e=_.default.d2j(t);return[e.jy,e.jm,e.jd]}function o(t,e,n){return _.default.j2d(t,e,n)}function u(t,e,n){if(e>12||e<=0){var r=Math.floor((e-1)/12);t+=r,e-=12*r}return o(t,e,n)}Object.defineProperty(e,"__esModule",{value:!0}),e.jd_to_gregorian=i,e.gregorian_to_jd=a,e.jd_to_persian=s,e.persian_to_jd=o,e.persian_to_jd_fixed=u;var d=n(2),_=r(d)},function(t,e){function n(t,e,n){return d(_(t,e,n))}function r(t,e,n){return c(u(t,e,n))}function i(t,e,n){return t>=-61&&t<=3177&&e>=1&&e<=12&&n>=1&&n<=s(t,e)}function a(t){return 0===o(t).leap}function s(t,e){return e<=6?31:e<=11?30:a(t)?30:29}function o(t){var e,n,r,i,a,s,o,u=[-61,9,38,199,426,686,756,818,1111,1181,1210,1635,2060,2097,2192,2262,2324,2394,2456,3178],d=u.length,_=t+621,c=-14,l=u[0];if(t<l||t>=u[d-1])throw new Error("Invalid Jalaali year "+t);for(o=1;o<d&&(e=u[o],n=e-l,!(t<e));o+=1)c=c+8*f(n,33)+f(h(n,33),4),l=e;return s=t-l,c=c+8*f(s,33)+f(h(s,33)+3,4),4===h(n,33)&&n-s===4&&(c+=1),i=f(_,4)-f(3*(f(_,100)+1),4)-150,a=20+c-i,n-s<6&&(s=s-n+33*f(n+4,33)),r=h(h(s+1,33)-1,4),r===-1&&(r=4),{leap:r,gy:_,march:a}}function u(t,e,n){var r=o(t);return _(r.gy,3,r.march)+31*(e-1)-f(e,7)*(e-7)+n-1}function d(t){var e,n,r,i=c(t).gy,a=i-621,s=o(a),u=_(i,3,s.march);if(r=t-u,r>=0){if(r<=185)return n=1+f(r,31),e=h(r,31)+1,{jy:a,jm:n,jd:e};r-=186}else a-=1,r+=179,1===s.leap&&(r+=1);return n=7+f(r,30),e=h(r,30)+1,{jy:a,jm:n,jd:e}}function _(t,e,n){var r=f(1461*(t+f(e-8,6)+100100),4)+f(153*h(e+9,12)+2,5)+n-34840408;return r=r-f(3*f(t+100100+f(e-8,6),100),4)+752}function c(t){var e,n,r,i,a;return e=4*t+139361631,e=e+4*f(3*f(4*t+183187720,146097),4)-3908,n=5*f(h(e,1461),4)+308,r=f(h(n,153),5)+1,i=h(f(n,153),12)+1,a=f(e,1461)-100100+f(8-i,6),{gy:a,gm:i,gd:r}}function f(t,e){return~~(t/e)}function h(t,e){return t-~~(t/e)*e}t.exports={toJalaali:n,toGregorian:r,isValidJalaaliDate:i,isLeapJalaaliYear:a,jalaaliMonthLength:s,jalCal:o,j2d:u,d2j:d,g2d:_,d2g:c}},function(t,e,n){"use strict";function r(t,e){var n,r,a,s,o,u,d,_,c,f,h,l,g,p,D=/^(\d|\d\d|\d\d\d\d)(?:([-\/])(\d{1,2})(?:\2(\d|\d\d|\d\d\d\d))?)?(([ T])(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d+))?)?(Z|([+-])(\d{2})(?::?(\d{2}))?)?)?$/,T=D.exec(t);if(T&&(r=T[2],a=T[6],s=+T[1],o=+T[3]||1,u=+T[4]||1,d="/"!==r&&" "!==T[6],_=+T[7]||0,c=+T[8]||0,f=+T[9]||0,h=1e3*+("0."+(T[10]||"0")),l=T[11],g=d&&(l||!T[5]),p=("-"===T[12]?-1:1)*(60*(+T[13]||0)+(+T[14]||0)),(!l&&"T"!==a||d)&&u>=1e3!=s>=1e3)){if(u>=1e3){if("-"===r)return;u=+T[1],s=u}if(e){var j=(0,i.jd_to_gregorian)((0,i.persian_to_jd_fixed)(s,o,u));s=j[0],o=j[1],u=j[2]}return n=new Date(s,o-1,u,_,c,f,h),g&&n.setUTCMinutes(n.getUTCMinutes()-n.getTimezoneOffset()+p),n}}Object.defineProperty(e,"__esModule",{value:!0}),e.parseDate=r;var i=n(1)},function(t,e){"use strict";function n(t){var e,n;if(!t&&0!==t)return"";e=t.toString(),n=e.split("");for(var r=0;r<n.length;r++){var s=n[r];(a[s]||i[s])&&(n[r]=a[s]||i[s])}return n.join("")}function r(t){return t<10?"0"+t:t}Object.defineProperty(e,"__esModule",{value:!0}),e.pad2=r;for(var i={},a={},s=["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"],o=["۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"],u=0;u<10;u++)a[s[u]]=u,i[o[u]]=u;e.digits_fa2en=n}])});