UNPKG

lunar-lite

Version:

精简版的农历和阳历日期转换库。

69 lines (68 loc) 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getHeavenlyStemAndEarthlyBranchBySolarDate = exports.getHeavenlyStemAndEarthlyBranchByLunarDate = void 0; var convertor_1 = require("./convertor"); var lunar_typescript_1 = require("lunar-typescript"); /** * 通过农历获取生辰干支 * * @param dateStr 农历日期 YYYY-MM-DD * @param timeIndex 时辰索引【0~12】 * @param isLeap 是否为闰月 * @returns HeavenlyStemAndEarthlyBranchResult */ var getHeavenlyStemAndEarthlyBranchByLunarDate = function (dateStr, timeIndex, isLeap, options) { if (options === void 0) { options = { year: "normal", month: "exact" }; } var solarDate = (0, convertor_1.lunar2solar)(dateStr, isLeap); return (0, exports.getHeavenlyStemAndEarthlyBranchBySolarDate)(solarDate.toString(), timeIndex, options); }; exports.getHeavenlyStemAndEarthlyBranchByLunarDate = getHeavenlyStemAndEarthlyBranchByLunarDate; /** * 将阳历转化为干支纪年 * * @param dateStr 公历日期 YYYY-MM-DD * @param timeIndex 时辰索引【0~12】 * @returns HeavenlyStemAndEarthlyBranchResult */ var getHeavenlyStemAndEarthlyBranchBySolarDate = function (dateStr, timeIndex, options) { if (options === void 0) { options = { year: "exact" }; } var _a = (0, convertor_1.normalizeDateStr)(dateStr), year = _a[0], month = _a[1], date = _a[2]; var solar = lunar_typescript_1.Solar.fromYmdHms(year, month, date, Math.max(timeIndex * 2 - 1, 0), 30, 0); var lunar = solar.getLunar(); var yearlyGan = (options === null || options === void 0 ? void 0 : options.year) === "normal" ? lunar.getYearGan() : lunar.getYearGanByLiChun(); var yearlyZhi = (options === null || options === void 0 ? void 0 : options.year) === "normal" ? lunar.getYearZhi() : lunar.getYearZhiByLiChun(); var yearly = [ yearlyGan, yearlyZhi, ]; var monthly = [ ((options === null || options === void 0 ? void 0 : options.month) === "normal" ? lunar.getMonthGan() : lunar.getMonthGanExact()), ((options === null || options === void 0 ? void 0 : options.month) === "normal" ? lunar.getMonthZhi() : lunar.getMonthZhiExact()), ]; var daily = [ lunar.getDayGanExact(), lunar.getDayZhiExact(), ]; var hourly = [ lunar.getTimeGan(), lunar.getTimeZhi(), ]; return { yearly: yearly, monthly: monthly, daily: daily, hourly: hourly, toString: function () { return "".concat(yearly.join(""), " ").concat(monthly.join(""), " ").concat(daily.join(""), " ").concat(hourly.join("")); }, }; }; exports.getHeavenlyStemAndEarthlyBranchBySolarDate = getHeavenlyStemAndEarthlyBranchBySolarDate;