"use strict";
/**
 * Date模块
 * @date 2022-03
 * @author 何华东
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.DateUtils = exports.DATE_TIME_FORMAT = exports.DATE_FORMAT = void 0;
var dayjs = require("dayjs");
/**
 * 日期格式化字符串 `YYYY-MM-DD`
 */
exports.DATE_FORMAT = 'YYYY-MM-DD';
/**
 * 日期+时间格式化字符串 `YYYY-MM-DD HH:mm:ss`
 */
exports.DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
/**
 * Date工具类
 */
var DateUtils = /** @class */ (function () {
    function DateUtils() {
    }
    /**
     * 时间格式化
     *
     * @param date 默认当前系统时间
     * @param format 默认 `YYYY-MM-DD HH:mm:ss`
     */
    DateUtils.format = function (date, format) {
        if (format === void 0) { format = exports.DATE_TIME_FORMAT; }
        return dayjs(date).format(format);
    };
    /**
     * 获取`unix`时间戳(毫秒)
     */
    DateUtils.getUnixTimestamp = function (date) {
        return dayjs(date).valueOf();
    };
    /**
     * 求两个时间相差年数
     * @param dateFrom 开始时间
     * @param dateTo 结束时间
     */
    DateUtils.diffYears = function (dateFrom, dateTo) {
        return dayjs(dateTo).diff(dayjs(dateFrom), 'year');
    };
    /**
     * 求两个时间相差月数
     * @param dateFrom 开始时间
     * @param dateTo 结束时间
     */
    DateUtils.diffMonths = function (dateFrom, dateTo) {
        return dayjs(dateTo).diff(dayjs(dateFrom), 'month');
    };
    /**
     * 求两个时间相差天数
     * @param dateFrom 开始时间
     * @param dateTo 结束时间
     */
    DateUtils.diffDays = function (dateFrom, dateTo) {
        return dayjs(dateTo).diff(dayjs(dateFrom), 'day');
    };
    /**
     * 求两个时间相差分钟数
     * @param dateFrom 开始时间
     * @param dateTo 结束时间
     */
    DateUtils.diffMinutes = function (dateFrom, dateTo) {
        return dayjs(dateTo).diff(dayjs(dateFrom), 'minute');
    };
    /**
     * 求两个时间相差秒数
     * @param dateFrom 开始时间
     * @param dateTo 结束时间
     */
    DateUtils.diffSeconds = function (dateFrom, dateTo) {
        return dayjs(dateTo).diff(dayjs(dateFrom), 'second');
    };
    /**
     * 求两个时间相差毫秒数
     * @param dateFrom 开始时间
     * @param dateTo 结束时间
     */
    DateUtils.diffMilliseconds = function (dateFrom, dateTo) {
        return dayjs(dateTo).diff(dayjs(dateFrom), 'millisecond');
    };
    /**
     * 对date时间部分清零, 保留年月日
     */
    DateUtils.clearTime = function (date) {
        date.setHours(0);
        date.setMinutes(0);
        date.setSeconds(0);
        date.setMilliseconds(0);
        return date;
    };
    /**
     * 验证date是否有效
     */
    DateUtils.isValid = function (date) {
        if (!date)
            return false;
        return dayjs(date).isValid();
    };
    /**
     * 获取上个日期
     */
    DateUtils.getPrevDate = function (date) {
        return dayjs(date).add(-1, 'day');
    };
    /**
     * 获取下个日期
     */
    DateUtils.getNextDate = function (date) {
        return dayjs(date).add(1, 'day');
    };
    /**
     * 获取当月第一天
     */
    DateUtils.getFirstDayOfMonth = function (date) {
        return dayjs(date).date(1);
    };
    /**
     * 获取当月最后一天
     */
    DateUtils.getLastDayOfMonth = function (date) {
        return dayjs(date).date(1).add(1, 'month').add(-1, 'day');
    };
    return DateUtils;
}());
exports.DateUtils = DateUtils;
exports.default = DateUtils;
//# sourceMappingURL=Date.js.map