UNPKG

lunar-calendar-plus

Version:

lunar-calendar-plus是一个可自定义设置假期、节日;获取指定农历日期、节气、每日宜忌、天文历等灵活的js库。支持Typescript!

76 lines (68 loc) 1.94 kB
const festivalData = require("../config/festivalData"); const baseDate = require("../helper/baseDate"); function festival(fest) { if (fest && baseDate.getType(fest, "Object") >= 0) { this.festivalData = Object.assign(fest, festivalData); } else { this.festivalData = festivalData; } } /** * 设置节日 * @param {Object} data * @param {Boolean} type true:阳历 */ festival.prototype.setFestival = function (data, type) { if (type) { this.festivalData["gregorianCalendar"] = baseDate.coverObj( this.festivalData["gregorianCalendar"], data ); } else { this.festivalData["lunarFestival"] = baseDate.coverObj( this.festivalData["lunarFestival"], data ); } }; /** * 获取农历节日 * @param {*} m * @param {*} d */ festival.prototype.lunarFestival = function (m, d) { return festivalData.lunarFestival[m] && festivalData.lunarFestival[m][d]; }; /** * 获取公历节日 * @param {*} m * @param {*} d */ festival.prototype.gerFestival = function (m, d) { return ( festivalData.gregorianCalendar[m] && festivalData.gregorianCalendar[m][d] ); }; /** * 获取指定日期节日(可能包含公历、农历、都不包含) * @param {Number} m * @param {Number} d * @returns {Array|String|undefined} */ festival.prototype.dayFestival = function (m, d) { var festivalData = this.festivalData; var isArray = festivalData.gregorianCalendar.hasOwnProperty(m) && festivalData.lunarFestival.hasOwnProperty(m) ? true : false; return isArray ? [].concat( festivalData.lunarFestival[m][d], festivalData.gregorianCalendar[m][d] ) : (festivalData.lunarFestival[m] && festivalData.lunarFestival[m][d]) || (festivalData.gregorianCalendar[m] && festivalData.gregorianCalendar[m][d]); }; module.exports = festival;