lunar-calendar-plus
Version:
lunar-calendar-plus是一个可自定义设置假期、节日;获取指定农历日期、节气、每日宜忌、天文历等灵活的js库。支持Typescript!
76 lines (68 loc) • 1.94 kB
JavaScript
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;