nepalidateconvert
Version:
A javascript package to convert nepali date BS (Bikram Sambat) to AD and vice-versa, calcuate age from nepali date (BS). Fixed Smdkl package till 2083
2 lines (1 loc) • 9.17 kB
JavaScript
(function(s,c){typeof exports=="object"&&typeof module<"u"?c(exports):typeof define=="function"&&define.amd?define(["exports"],c):(s=typeof globalThis<"u"?globalThis:s||self,c(s.nepalidateconvert={}))})(this,function(s){"use strict";var c;(function(e){e.INVALID_DAY="Day is invalid.",e.INVALID_YEAR="Year is invalid.",e.INVALID_MONTH="Month is invalid.",e.BS_DATE_OUT_OF_RANGE="BS Date out of range",e.AD_DATE_OUT_OF_RANGE="AD Date out of range",e.DATE_FORMAT_INVALID="Date format is invalid",e.DATE_GREATER_THAN_TODAY="Date cannot be greater then today"})(c||(c={}));const T=c,t=[];t[1978]=[1978,31,31,32,31,31,31,30,29,30,29,30,30],t[1979]=[1979,31,31,32,32,31,30,30,29,30,29,30,30],t[1980]=[1980,31,32,31,32,31,30,30,30,29,29,30,31],t[1981]=[1981,31,31,31,32,31,31,29,30,30,29,30,30],t[1982]=[1982,31,31,32,31,31,31,30,29,30,29,30,30],t[1983]=[1983,31,31,32,32,31,30,30,29,30,29,30,30],t[1984]=[1984,31,32,31,32,31,30,30,30,29,29,30,31],t[1985]=[1985,31,31,31,32,31,31,29,30,30,29,30,30],t[1986]=[1986,31,31,32,31,31,31,30,29,30,29,30,30],t[1987]=[1987,31,32,31,32,31,30,30,29,30,29,30,30],t[1988]=[1988,31,32,31,32,31,30,30,30,29,29,30,31],t[1989]=[1989,31,31,31,32,31,31,30,29,30,29,30,30],t[1990]=[1990,31,31,32,31,31,31,30,29,30,29,30,30],t[1991]=[1991,31,32,31,32,31,30,30,29,30,29,30,30],t[1992]=[1992,31,32,31,32,31,30,30,30,29,30,29,31],t[1993]=[1993,31,31,31,32,31,31,30,29,30,29,30,30],t[1994]=[1994,31,31,32,31,31,31,30,29,30,29,30,30],t[1995]=[1995,31,32,31,32,31,30,30,30,29,29,30,30],t[1996]=[1996,31,32,31,32,31,30,30,30,29,30,29,31],t[1997]=[1997,31,31,32,31,31,31,30,29,30,29,30,30],t[1998]=[1998,31,31,32,31,31,31,30,29,30,29,30,30],t[1999]=[1999,31,32,31,32,31,30,30,30,29,29,30,31],t[2e3]=[2e3,30,32,31,32,31,30,30,30,29,30,29,31],t[2001]=[2001,31,31,32,31,31,31,30,29,30,29,30,30],t[2002]=[2002,31,31,32,32,31,30,30,29,30,29,30,30],t[2003]=[2003,31,32,31,32,31,30,30,30,29,29,30,31],t[2004]=[2004,30,32,31,32,31,30,30,30,29,30,29,31],t[2005]=[2005,31,31,32,31,31,31,30,29,30,29,30,30],t[2006]=[2006,31,31,32,32,31,30,30,29,30,29,30,30],t[2007]=[2007,31,32,31,32,31,30,30,30,29,29,30,31],t[2008]=[2008,31,31,31,32,31,31,29,30,30,29,29,31],t[2009]=[2009,31,31,32,31,31,31,30,29,30,29,30,30],t[2010]=[2010,31,31,32,32,31,30,30,29,30,29,30,30],t[2011]=[2011,31,32,31,32,31,30,30,30,29,29,30,31],t[2012]=[2012,31,31,31,32,31,31,29,30,30,29,30,30],t[2013]=[2013,31,31,32,31,31,31,30,29,30,29,30,30],t[2014]=[2014,31,31,32,32,31,30,30,29,30,29,30,30],t[2015]=[2015,31,32,31,32,31,30,30,30,29,29,30,31],t[2016]=[2016,31,31,31,32,31,31,29,30,30,29,30,30],t[2017]=[2017,31,31,32,31,31,31,30,29,30,29,30,30],t[2018]=[2018,31,32,31,32,31,30,30,29,30,29,30,30],t[2019]=[2019,31,32,31,32,31,30,30,30,29,30,29,31],t[2020]=[2020,31,31,31,32,31,31,30,29,30,29,30,30],t[2021]=[2021,31,31,32,31,31,31,30,29,30,29,30,30],t[2022]=[2022,31,32,31,32,31,30,30,30,29,29,30,30],t[2023]=[2023,31,32,31,32,31,30,30,30,29,30,29,31],t[2024]=[2024,31,31,31,32,31,31,30,29,30,29,30,30],t[2025]=[2025,31,31,32,31,31,31,30,29,30,29,30,30],t[2026]=[2026,31,32,31,32,31,30,30,30,29,29,30,31],t[2027]=[2027,30,32,31,32,31,30,30,30,29,30,29,31],t[2028]=[2028,31,31,32,31,31,31,30,29,30,29,30,30],t[2029]=[2029,31,31,32,31,32,30,30,29,30,29,30,30],t[2030]=[2030,31,32,31,32,31,30,30,30,29,29,30,31],t[2031]=[2031,30,32,31,32,31,30,30,30,29,30,29,31],t[2032]=[2032,31,31,32,31,31,31,30,29,30,29,30,30],t[2033]=[2033,31,31,32,32,31,30,30,29,30,29,30,30],t[2034]=[2034,31,32,31,32,31,30,30,30,29,29,30,31],t[2035]=[2035,30,32,31,32,31,31,29,30,30,29,29,31],t[2036]=[2036,31,31,32,31,31,31,30,29,30,29,30,30],t[2037]=[2037,31,31,32,32,31,30,30,29,30,29,30,30],t[2038]=[2038,31,32,31,32,31,30,30,30,29,29,30,31],t[2039]=[2039,31,31,31,32,31,31,29,30,30,29,30,30],t[2040]=[2040,31,31,32,31,31,31,30,29,30,29,30,30],t[2041]=[2041,31,31,32,32,31,30,30,29,30,29,30,30],t[2042]=[2042,31,32,31,32,31,30,30,30,29,29,30,31],t[2043]=[2043,31,31,31,32,31,31,29,30,30,29,30,30],t[2044]=[2044,31,31,32,31,31,31,30,29,30,29,30,30],t[2045]=[2045,31,32,31,32,31,30,30,29,30,29,30,30],t[2046]=[2046,31,32,31,32,31,30,30,30,29,29,30,31],t[2047]=[2047,31,31,31,32,31,31,30,29,30,29,30,30],t[2048]=[2048,31,31,32,31,31,31,30,29,30,29,30,30],t[2049]=[2049,31,32,31,32,31,30,30,30,29,29,30,30],t[2050]=[2050,31,32,31,32,31,30,30,30,29,30,29,31],t[2051]=[2051,31,31,31,32,31,31,30,29,30,29,30,30],t[2052]=[2052,31,31,32,31,31,31,30,29,30,29,30,30],t[2053]=[2053,31,32,31,32,31,30,30,30,29,29,30,30],t[2054]=[2054,31,32,31,32,31,30,30,30,29,30,29,31],t[2055]=[2055,31,31,32,31,31,31,30,29,30,29,30,30],t[2056]=[2056,31,31,32,31,32,30,30,29,30,29,30,30],t[2057]=[2057,31,32,31,32,31,30,30,30,29,29,30,31],t[2058]=[2058,30,32,31,32,31,30,30,30,29,30,29,31],t[2059]=[2059,31,31,32,31,31,31,30,29,30,29,30,30],t[2060]=[2060,31,31,32,32,31,30,30,29,30,29,30,30],t[2061]=[2061,31,32,31,32,31,30,30,30,29,29,30,31],t[2062]=[2062,30,32,31,32,31,31,29,30,29,30,29,31],t[2063]=[2063,31,31,32,31,31,31,30,29,30,29,30,30],t[2064]=[2064,31,31,32,32,31,30,30,29,30,29,30,30],t[2065]=[2065,31,32,31,32,31,30,30,30,29,29,30,31],t[2066]=[2066,31,31,31,32,31,31,29,30,30,29,29,31],t[2067]=[2067,31,31,32,31,31,31,30,29,30,29,30,30],t[2068]=[2068,31,31,32,32,31,30,30,29,30,29,30,30],t[2069]=[2069,31,32,31,32,31,30,30,30,29,29,30,31],t[2070]=[2070,31,31,31,32,31,31,29,30,30,29,30,30],t[2071]=[2071,31,31,32,31,31,31,30,29,30,29,30,30],t[2072]=[2072,31,32,31,32,31,30,30,29,30,29,30,30],t[2073]=[2073,31,32,31,32,31,30,30,30,29,29,30,31],t[2074]=[2074,31,31,31,32,31,31,30,29,30,29,30,30],t[2075]=[2075,31,31,32,31,31,31,30,29,30,29,30,30],t[2076]=[2076,31,32,31,32,31,30,30,30,29,29,30,30],t[2077]=[2077,31,32,31,32,31,30,30,30,29,30,29,31],t[2078]=[2078,31,31,31,32,31,31,30,29,30,29,30,30],t[2079]=[2079,31,31,32,31,31,31,30,29,30,29,30,30],t[2080]=[2080,31,32,31,32,31,30,30,30,29,29,30,30],t[2081]=[2081,31,32,31,32,31,30,30,30,29,30,29,31],t[2082]=[2082,31,31,32,31,31,31,30,29,30,29,30,30],t[2083]=[2083,31,31,32,31,31,30,30,30,29,30,30,30],t[2084]=[2084,31,31,32,31,31,30,30,30,29,30,30,30],t[2085]=[2085,31,32,31,32,30,31,30,30,29,30,30,30],t[2086]=[2086,30,32,31,32,31,30,30,30,29,30,30,30],t[2087]=[2087,31,31,32,31,31,31,30,30,29,30,30,30],t[2088]=[2088,30,31,32,32,30,31,30,30,29,30,30,30],t[2089]=[2089,30,32,31,32,31,30,30,30,29,30,30,30],t[2090]=[2090,30,32,31,32,31,30,30,30,29,30,30,30],t[2091]=[2091,31,31,32,31,31,31,30,30,29,30,30,30],t[2092]=[2092,30,31,32,32,31,30,30,30,29,30,30,30],t[2093]=[2093,30,32,31,32,31,30,30,30,29,30,30,30],t[2094]=[2094,31,31,32,31,31,30,30,30,29,30,30,30],t[2095]=[2095,31,31,32,31,31,31,30,29,30,30,30,30],t[2096]=[2096,30,31,32,32,31,30,30,29,30,29,30,30],t[2097]=[2097,31,32,31,32,31,30,30,30,29,30,30,30],t[2098]=[2098,31,31,32,31,31,31,29,30,29,30,29,31],t[2099]=[2099,31,32,31,32,31,30,30,30,29,29,30,31];const A={MAX_DAY:32,MIN_DAY:1,MAX_MONTH:12,MIN_MONTH:1,YEAR_LENGTH:4,MAX_YEAR_AD:2040,MAX_MONTH_AD:31,MIN_YEAR_BS:1978,MAX_YEAR_BS:2099},M="1921-04-13",l=(e,o,n)=>`${e}-${("0"+o).slice(-2)}-${("0"+n).slice(-2)}`,u=e=>{const o=e.split("-");if(o.length!==3)throw new Error(T.DATE_FORMAT_INVALID);return o.map(Number)};function E(e){const[o,n,r]=u(e);if(r>A.MAX_DAY||r<A.MIN_DAY||!r)throw new Error(T.INVALID_DAY);if(n>A.MAX_MONTH||n<A.MIN_MONTH||!n)throw new Error(T.INVALID_MONTH);if(!o||o.toString().length!==A.YEAR_LENGTH)throw new Error(T.INVALID_YEAR);return{year:o,month:n,day:r}}function y(e){const{year:o,month:n,day:r}=E(e);if(o>A.MAX_YEAR_AD)throw new Error(T.AD_DATE_OUT_OF_RANGE);if(n>A.MAX_MONTH_AD)throw new Error(T.INVALID_MONTH);return l(o,n,r)}function d(e){const{year:o,month:n,day:r}=E(e);if(o<A.MIN_YEAR_BS||o>A.MAX_YEAR_BS)throw new Error(T.BS_DATE_OUT_OF_RANGE);if(r>t[o][n])throw new Error(`No ${r} day exits in this month.`);return l(o,n,r)}function h(e,o=!0){let n=0,r=0,D=0,i=0,a=!1;for(let f=A.MIN_YEAR_BS;f<=A.MAX_YEAR_BS&&!a;f++)for(let _=A.MIN_MONTH;_<=A.MAX_MONTH;_++)if(i+=t[f][_],e-i<0){D=e-i+t[f][_]+1,a=!0,n=f,r=_;break}return o?l(n,r,D):{currentYear:n,currentMonth:r,currentDay:D}}function O(e){e=y(e);const o=new Date(M),n=new Date(e),r=Math.floor((n.getTime()-o.getTime())/864e5);if(r<0)throw new Error(T.AD_DATE_OUT_OF_RANGE);return h(r)}function I(e,o){const[n,r,D]=e.split("-").map(Number),i=new Date(Date.UTC(n,r-1,D));i.setUTCDate(i.getUTCDate()+o);const a=i.getUTCFullYear(),f=i.getUTCMonth()+1,_=i.getUTCDate();return l(a,f,_)}function Y(e){e=d(e);const[o,n,r]=u(e);let D=0;for(let i=A.MIN_YEAR_BS;i<=o;i++)if(i===o){for(let a=A.MIN_MONTH;a<n;a++)D+=t[i][a];D+=r-1}else for(let a=A.MIN_MONTH;a<=A.MAX_MONTH;a++)D+=t[i][a];return I(M,D)}function m(){const e=new Date(M),n=Math.floor((new Date().getTime()-e.getTime())/864e5);return h(n,!1)}function w(e){const o=d(e),[n,r,D]=u(o),{currentYear:i,currentMonth:a,currentDay:f}=m();if(n>i||n===i&&r>a||n===i&&r===a&&D>f)throw new Error(T.DATE_GREATER_THAN_TODAY);let _={year:0,month:0,day:t[n][r]-D};for(let N=n;N<=i;N++)N===n?f>=D?(_.day=f-D,a>=r?_.month=a-r:(_.month=A.MAX_MONTH-r+a,_.year--)):(_.day+=f,a>r?_.month=a-r-1:(_.month=A.MAX_MONTH-r+a-1,_.year--)):_.year++;return _}s.adToBs=O,s.bsToAd=Y,s.calculateAge=w,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});