UNPKG

@livelybone/date-generator

Version:

A module that generates calendar, which includes years, months, dates, hours, minutes, seconds

10 lines (8 loc) 7.53 kB
/** * Bundle of @livelybone/date-generator * Generated: 2020-05-17 * Version: 4.2.1 * License: MIT * Author: 2631541504@qq.com */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).DateGenerator={})}(this,function(o){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function s(a){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?r(Object(o),!0).forEach(function(e){var t,r,n;t=a,n=o[r=e],r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(o,e))})}return a}function w(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"0";return void 0===r&&(r="0"),0<(e-=(t=t.toString()).length)?new Array(e+(/\./.test(t)?2:1)).join(r)+t:t}function T(e){return(e=+e)===Math.floor(e)&&0<=e}function i(e,t){return(e%t+t)%t}function c(e){return(e=+e)%4==0&&(e%100!=0||e%400==0)}function j(e,t){return e=+e,2===(t=+t)?c(e)?29:28:Math.ceil(Math.abs(t-7.5))%2==1?31:30}function e(i){return function(e){for(var t=Math.ceil(Math.abs(e&&e.interval||1)),r=Math.ceil(Math.abs(e&&e.min||0)),n=Math.ceil(Math.abs(e&&e.max||i-1)),a=[],o=0;o<=i;o+=t)a.push({value:w(2,o),max:i,canBeChose:r<=o&&o<=n});return a}}function O(e){if(!e)return null;var t=/^(\d{4})-?(\d{1,2})?-?(\d{1,2})?$/;if(!t.test(e))return console.warn(new Error("Param date `".concat(e,"` is invalid. The right example: 2018[-02][-01]"))),null;var r=e.match(t),n={year:w(4,r[1]),month:w(2,i(+r[2]||1,12)||12)},a=j(n.year,n.month);return n.date=w(2,i(+r[3]||1,a)||a),n}function x(){var e=new Date;return{year:w(4,e.getFullYear()),month:w(2,e.getMonth()+1),date:w(2,e.getDate())}}function C(e,t){var r="string"==typeof e?O(e):e;if(!r)return null;var n=+r.month+t,a=i(n,12),o=Math.floor(n/12);return 0===a&&--o,{year:w(4,+r.year+o),month:w(2,a||12)}}var n,a;function S(e,t,r){var n,a,o;return e=+e,r=+r,o=1===(t=+t)||2===t?(n=Math.floor((e-1)/100),a=(e-1)%100,t+12):(n=Math.floor(e/100),a=e%100,t),i(a+Math.floor(a/4)+Math.floor(n/4)-2*n+Math.floor(26*(o+1)/10)+r-1,7)}function m(e,t){var r="string"==typeof e?O(e):e,n="string"==typeof t?O(t):t;if(!r||!n)return o.DateCompare.Equal;var a=r.year-n.year;return a?0<a?o.DateCompare.GreatThanYear:o.DateCompare.LessThanYear:(a=r.month-n.month)?0<a?o.DateCompare.GreatThanMonth:o.DateCompare.LessThanMonth:(a=r.date-n.date)?0<a?o.DateCompare.GreatThanDate:o.DateCompare.LessThanDate:o.DateCompare.Equal}function P(e,t){var r="string"==typeof e?O(e):e,n="string"==typeof t?O(t):t;if(!r||!n)return 0;var a=m(r,n);if(0===a)return 0;var o=0<a?n:r,i=0<a?r:n,u=0<a?1:-1,h=i.year-o.year;if(1<h)return(new Array(h).join(",").split("").reduce(function(e,t,r){return e+(c(+o.year+r+1)?366:365)},0)+P(s({},o,{month:12,date:31}),o)+P(i,s({},i,{month:1,date:1}))+1)*u;if(1==h)return(P(s({},o,{month:12,date:31}),o)+P(i,s({},i,{month:1,date:1}))+1)*u;var f=i.month-o.month;return 1<f?(new Array(f).join(",").split("").reduce(function(e,t,r){var n=+o.month+r+1;return e+j(o.year,n)},0)+P(s({},o,{date:j(o.year,o.month)}),o)+P(i,s({},i,{date:1}))+1)*u:1==f?(P(s({},o,{date:j(o.year,o.month)}),o)+P(i,s({},i,{date:1}))+1)*u:(i.date-o.date)*u}(n=o.DefaultMax||(o.DefaultMax={}))[n.Hour=23]="Hour",n[n.Minute=59]="Minute",n[n.Second=59]="Second",(a=o.DateCompare||(o.DateCompare={}))[a.GreatThanYear=100]="GreatThanYear",a[a.GreatThanMonth=10]="GreatThanMonth",a[a.GreatThanDate=1]="GreatThanDate",a[a.Equal=0]="Equal",a[a.LessThanDate=-1]="LessThanDate",a[a.LessThanMonth=-10]="LessThanMonth",a[a.LessThanYear=-100]="LessThanYear";var u=e(o.DefaultMax.Hour),h=e(o.DefaultMax.Minute),f=e(o.DefaultMax.Second);o.calcStepBetweenDates=P,o.compareDates=m,o.fillTo=w,o.getDateByStep=function e(t,r){var n="string"==typeof t?O(t):t;if(!n)return null;var a=j(n.year,n.month),o=+n.date+r;if(o<=0){var i=C(n,-1);return e(s({},i,{date:j(i.year,i.month)}),o)}return a<o?e(s({},C(n,1),{date:1}),o-a):{year:w(4,n.year),month:w(2,n.month),date:w(2,o)}},o.getDay=S,o.getHour=u,o.getIntervalVal=e,o.getMinute=h,o.getMonthByStep=C,o.getMonthLen=j,o.getSecond=f,o.gntCalendar=function(e,t){var r="string"==typeof e?O(e):e;if(!r)return null;var n=+r.year,a=+r.month;if(t=t||{},!T(n)||!T(a))throw new Error("Prop year and month must be a non-negative number");for(var h="string"==typeof t.min?O(t.min):t.min,f="string"==typeof t.max?O(t.max):t.max,o=t.firstDayOfWeek||0,i=C({year:n,month:a},-1),u=j(i.year,i.month),s=j(n,a),c=C({year:n,month:a},1),m=Math.ceil(31/7)+1,y=[],l=function(o,i,u){function e(e,t){if(!e)return!0;t=t||1;var r=+e.year,n=+e.month,a=+e.date;return 0<(o-r)*t||o===r&&0<(i-n)*t||o===r&&i===n&&0<=(u-a)*t}return e(h)&&e(f,-1)},p=1,d=1,v=(S(n,a,1)-o+7)%7,g=x(),M=0;M<m;M+=1){y[M]=[];for(var b=0;b<7;b+=1)if(0===M&&b<v){var D=u-v+1+b;y[M][b]={year:w(4,i.year),month:w(2,i.month),date:w(2,D),isInThisMonth:!1,canBeChose:l(+i.year,+i.month,D),isNow:!1},y[M][b].isNow=0===P(g,y[M][b])}else p<=s?(y[M][b]={year:w(4,n),month:w(2,a),date:w(2,p),isInThisMonth:!0,canBeChose:l(n,a,p),isNow:!1},y[M][b].isNow=0===P(g,y[M][b]),p+=1):(y[M][b]={year:w(4,c.year),month:w(2,c.month),date:w(2,d),isInThisMonth:!1,canBeChose:l(+c.year,+c.month,d),isNow:!1},y[M][b].isNow=0===P(g,y[M][b]),d+=1)}return y},o.gntMonth=function(e,t){e=+e;for(var r=(t=t||{}).splitLen||3,n="string"==typeof t.min?O(t.min):t.min,a="string"==typeof t.max?O(t.max):t.max,o=[],i=Math.ceil(12/r),u=x(),h=0;h<i;h+=1){o[h]=[];for(var f=0;f<r;f+=1){var s=h*r+f+1;if(12<s)break;o[h].push({year:w(4,e),month:w(2,s),canBeChose:!n&&!a||!!n&&!!a&&(e>+n.year||e===+n.year&&s>=+n.month)&&(e<+a.year||e===+a.year&&s<=+a.month)||!a&&!!n&&(e>+n.year||e===+n.year&&s>=+n.month)||!n&&!!a&&(e<+a.year||e===+a.year&&s<=+a.month),isNow:+u.year===e&&+u.month===s})}}return o},o.gntYear=function(e,t,r){if(r=r||{},!T(+(e=+e))||!T(+t))throw new Error("Prop start and len must be a non-negative number");for(var n=r.splitLen||3,a=r.min||null,o=r.max||null,i=[],u=Math.ceil(t/n),h=x(),f=0;f<u;f+=1){i[f]=[];for(var s=0;s<n;s+=1){var c=e+f*n+s;if(t<c-e+1)break;i[f].push({year:w(4,c),canBeChose:!a&&!o||!!a&&!!o&&a<=c&&c<=o||!a&&!!o&&c<=o||!o&&!!a&&a<=c,isNow:+h.year===c})}}return i},o.isLeapYear=c,o.isNonNegInt=T,o.nowDate=x,o.nowTime=function(){var e=new Date;return{hour:w(2,e.getHours()),minute:w(2,e.getMinutes()),second:w(2,e.getSeconds())}},o.objAssign=function(r,n){return r="object"===t(r)?r:{},n="object"===t(n)?n:{},Object.keys(r).concat(Object.keys(n)).reduce(function(e,t){return t in e||(e[t]=void 0!==n[t]?n[t]:r[t]),e},{})},o.parseDate=O,o.parseTime=function(e){if(!e)return null;var t=/^(\d{1,2}):?(\d{1,2})?:?(\d{1,2})?$/;if(!t.test(e))return console.warn(new Error("Param time `".concat(e,"` is invalid. The right example: 18[:02][:01]"))),null;var r=e.match(t);return{hour:w(2,i(+r[1],24)),minute:w(2,i(+r[2]||0,60)),second:w(2,i(+r[3]||0,60))}},o.positiveMod=i,Object.defineProperty(o,"__esModule",{value:!0})});