@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.88 kB
JavaScript
import"./has.js";const e={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5,weeks:6048e5,months:26784e5,years:31536e6,decades:31536e7,centuries:31536e8},t={milliseconds:{getter:"getMilliseconds",setter:"setMilliseconds",multiplier:1},seconds:{getter:"getSeconds",setter:"setSeconds",multiplier:1},minutes:{getter:"getMinutes",setter:"setMinutes",multiplier:1},hours:{getter:"getHours",setter:"setHours",multiplier:1},days:{getter:"getDate",setter:"setDate",multiplier:1},weeks:{getter:"getDate",setter:"setDate",multiplier:7},months:{getter:"getMonth",setter:"setMonth",multiplier:1},years:{getter:"getFullYear",setter:"setFullYear",multiplier:1},decades:{getter:"getFullYear",setter:"setFullYear",multiplier:10},centuries:{getter:"getFullYear",setter:"setFullYear",multiplier:100}};function s(e,t){const s=new Date(e,t+1,1);return s.setDate(0),s.getDate()}function n(e,n,r){const l=new Date(e.getTime());if(n&&r){const e=t[r],{getter:u,setter:i,multiplier:a}=e;if("months"===r){const e=s(l.getFullYear(),l.getMonth()+n);l.getDate()>e&&l.setDate(e)}l[i](l[u]()+n*a)}return l}function r(e,t,s="milliseconds"){const n=e.getTime(),r=g(t,s,"milliseconds");return new Date(n+r)}function l(e,t){switch(t){case"milliseconds":return new Date(e.getTime());case"seconds":return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds());case"minutes":return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes());case"hours":return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours());case"days":return new Date(e.getFullYear(),e.getMonth(),e.getDate());case"weeks":return new Date(e.getFullYear(),e.getMonth(),e.getDate()-e.getDay());case"months":return new Date(e.getFullYear(),e.getMonth(),1);case"years":return new Date(e.getFullYear(),0,1);case"decades":return new Date(e.getFullYear()-e.getFullYear()%10,0,1);case"centuries":return new Date(e.getFullYear()-e.getFullYear()%100,0,1);default:return new Date}}function u(e,t,s="milliseconds"){const n=new Date(g(t,s,"milliseconds"));return n.setUTCFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),n}function i(e,t="milliseconds"){const s=g(e.getUTCHours(),"hours","milliseconds"),n=g(e.getUTCMinutes(),"minutes","milliseconds"),r=g(e.getUTCSeconds(),"seconds","milliseconds");return g(s+n+r+e.getUTCMilliseconds(),"milliseconds",t)}function a(e,t){const s=new Date(e.getTime());return s.setUTCFullYear(t.getFullYear(),t.getMonth(),t.getDate()),s}function o(e){const t=new Date(0);return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),t.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),t}function g(t,s,n){if(0===t)return 0;return t*e[s]/e[n]}export{g as convertTime,u as makeUTCTime,n as offsetDate,r as offsetDateUTC,a as resetUTCDate,i as timeSinceUTCMidnight,l as truncateDate,o as truncateLocalTime};