UNPKG

@iro/calendar

Version:

lunar is a calendar library for Solar and Chinese Lunar.

359 lines 13.4 kB
import { LunarUtil } from './LunarUtil'; import { Yun } from './Yun'; import { Dictionary } from './Dictionary'; var EightChar = (function () { function EightChar(lunar) { this._sect = 2; this._lunar = lunar; } EightChar.fromLunar = function (lunar) { return new EightChar(lunar); }; EightChar.prototype.getSect = function () { return this._sect; }; EightChar.prototype.setSect = function (sect) { this._sect = (1 == sect) ? 1 : 2; }; EightChar.prototype.getDayGanIndex = function () { return 2 === this._sect ? this._lunar.getDayGanIndexExact2() : this._lunar.getDayGanIndexExact(); }; EightChar.prototype.getDayZhiIndex = function () { return 2 === this._sect ? this._lunar.getDayZhiIndexExact2() : this._lunar.getDayZhiIndexExact(); }; EightChar.prototype.getYear = function () { return this._lunar.getYearInGanZhiExact(); }; EightChar.prototype.getYearGan = function () { return this._lunar.getYearGanExact(); }; EightChar.prototype.getYearZhi = function () { return this._lunar.getYearZhiExact(); }; EightChar.prototype.getYearHideGan = function () { var v = LunarUtil.ZHI_HIDE_GAN.get(this.getYearZhi()); return v ? v : []; }; EightChar.prototype.getYearWuXing = function () { var gan = LunarUtil.WU_XING_GAN.get(this.getYearGan()); var zhi = LunarUtil.WU_XING_ZHI.get(this.getYearZhi()); return gan && zhi ? gan + zhi : ''; }; EightChar.prototype.getYearNaYin = function () { var v = LunarUtil.NAYIN.get(this.getYear()); return v ? v : ''; }; EightChar.prototype.getYearShiShenGan = function () { var v = LunarUtil.SHI_SHEN_GAN.get(this.getDayGan() + this.getYearGan()); return v ? v : ''; }; EightChar.prototype.getYearShiShenZhi = function () { var dayGan = this.getDayGan(); var zhi = this.getYearZhi(); var hideGan = LunarUtil.ZHI_HIDE_GAN.get(zhi); var l = []; if (hideGan) { for (var i = 0, j = hideGan.length; i < j; i++) { var v = LunarUtil.SHI_SHEN_ZHI.get(dayGan + zhi + hideGan[i]); if (v) { l.push(v); } } } return l; }; EightChar.prototype.getDiShi = function (zhiIndex) { var offset = EightChar.CHANG_SHENG_OFFSET.get(this.getDayGan()); if (offset == undefined) { return ''; } var index = offset + (this.getDayGanIndex() % 2 == 0 ? zhiIndex : -zhiIndex); if (index >= 12) { index -= 12; } if (index < 0) { index += 12; } return EightChar.CHANG_SHENG[index]; }; EightChar.prototype.getYearDiShi = function () { return this.getDiShi(this._lunar.getYearZhiIndexExact()); }; EightChar.prototype.getYearXun = function () { return this._lunar.getYearXunExact(); }; EightChar.prototype.getYearXunKong = function () { return this._lunar.getYearXunKongExact(); }; EightChar.prototype.getMonth = function () { return this._lunar.getMonthInGanZhiExact(); }; EightChar.prototype.getMonthGan = function () { return this._lunar.getMonthGanExact(); }; EightChar.prototype.getMonthZhi = function () { return this._lunar.getMonthZhiExact(); }; EightChar.prototype.getMonthHideGan = function () { var v = LunarUtil.ZHI_HIDE_GAN.get(this.getMonthZhi()); return v ? v : []; }; EightChar.prototype.getMonthWuXing = function () { var gan = LunarUtil.WU_XING_GAN.get(this.getMonthGan()); var zhi = LunarUtil.WU_XING_ZHI.get(this.getMonthZhi()); return gan && zhi ? gan + zhi : ''; }; EightChar.prototype.getMonthNaYin = function () { var v = LunarUtil.NAYIN.get(this.getMonth()); return v ? v : ''; }; EightChar.prototype.getMonthShiShenGan = function () { var v = LunarUtil.SHI_SHEN_GAN.get(this.getDayGan() + this.getMonthGan()); return v ? v : ''; }; EightChar.prototype.getMonthShiShenZhi = function () { var dayGan = this.getDayGan(); var zhi = this.getMonthZhi(); var hideGan = LunarUtil.ZHI_HIDE_GAN.get(zhi); var l = []; if (hideGan) { for (var i = 0, j = hideGan.length; i < j; i++) { var v = LunarUtil.SHI_SHEN_ZHI.get(dayGan + zhi + hideGan[i]); if (v) { l.push(v); } } } return l; }; EightChar.prototype.getMonthDiShi = function () { return this.getDiShi(this._lunar.getMonthZhiIndexExact()); }; EightChar.prototype.getMonthXun = function () { return this._lunar.getMonthXunExact(); }; EightChar.prototype.getMonthXunKong = function () { return this._lunar.getMonthXunKongExact(); }; EightChar.prototype.getDay = function () { return 2 === this._sect ? this._lunar.getDayInGanZhiExact2() : this._lunar.getDayInGanZhiExact(); }; EightChar.prototype.getDayGan = function () { return 2 === this._sect ? this._lunar.getDayGanExact2() : this._lunar.getDayGanExact(); }; EightChar.prototype.getDayZhi = function () { return 2 === this._sect ? this._lunar.getDayZhiExact2() : this._lunar.getDayZhiExact(); }; EightChar.prototype.getDayHideGan = function () { var v = LunarUtil.ZHI_HIDE_GAN.get(this.getDayZhi()); return v ? v : []; }; EightChar.prototype.getDayWuXing = function () { var gan = LunarUtil.WU_XING_GAN.get(this.getDayGan()); var zhi = LunarUtil.WU_XING_ZHI.get(this.getDayZhi()); return gan && zhi ? gan + zhi : ''; }; EightChar.prototype.getDayNaYin = function () { var v = LunarUtil.NAYIN.get(this.getDay()); return v ? v : ''; }; EightChar.prototype.getDayShiShenGan = function () { return '日主'; }; EightChar.prototype.getDayShiShenZhi = function () { var dayGan = this.getDayGan(); var zhi = this.getDayZhi(); var hideGan = LunarUtil.ZHI_HIDE_GAN.get(zhi); var l = []; if (hideGan) { for (var i = 0, j = hideGan.length; i < j; i++) { var v = LunarUtil.SHI_SHEN_ZHI.get(dayGan + zhi + hideGan[i]); if (v) { l.push(v); } } } return l; }; EightChar.prototype.getDayDiShi = function () { return this.getDiShi(this.getDayZhiIndex()); }; EightChar.prototype.getDayXun = function () { return (2 === this._sect) ? this._lunar.getDayXunExact2() : this._lunar.getDayXunExact(); }; EightChar.prototype.getDayXunKong = function () { return (2 === this._sect) ? this._lunar.getDayXunKongExact2() : this._lunar.getDayXunKongExact(); }; EightChar.prototype.getTime = function () { return this._lunar.getTimeInGanZhi(); }; EightChar.prototype.getTimeGan = function () { return this._lunar.getTimeGan(); }; EightChar.prototype.getTimeZhi = function () { return this._lunar.getTimeZhi(); }; EightChar.prototype.getTimeHideGan = function () { var v = LunarUtil.ZHI_HIDE_GAN.get(this.getTimeZhi()); return v ? v : []; }; EightChar.prototype.getTimeWuXing = function () { var gan = LunarUtil.WU_XING_GAN.get(this._lunar.getTimeGan()); var zhi = LunarUtil.WU_XING_ZHI.get(this._lunar.getTimeZhi()); return gan && zhi ? gan + zhi : ''; }; EightChar.prototype.getTimeNaYin = function () { var v = LunarUtil.NAYIN.get(this.getTime()); return v ? v : ''; }; EightChar.prototype.getTimeShiShenGan = function () { var v = LunarUtil.SHI_SHEN_GAN.get(this.getDayGan() + this.getTimeGan()); return v ? v : ''; }; EightChar.prototype.getTimeShiShenZhi = function () { var dayGan = this.getDayGan(); var zhi = this.getTimeZhi(); var hideGan = LunarUtil.ZHI_HIDE_GAN.get(zhi); var l = []; if (hideGan) { for (var i = 0, j = hideGan.length; i < j; i++) { var v = LunarUtil.SHI_SHEN_ZHI.get(dayGan + zhi + hideGan[i]); if (v) { l.push(v); } } } return l; }; EightChar.prototype.getTimeDiShi = function () { var zhiIndex = this._lunar.getTimeZhiIndex(); var offset = EightChar.CHANG_SHENG_OFFSET.get(this.getDayGan()); if (offset == undefined) { return ''; } var index = offset + (this._lunar.getDayGanIndexExact() % 2 == 0 ? zhiIndex : -zhiIndex); if (index >= 12) { index -= 12; } if (index < 0) { index += 12; } return EightChar.CHANG_SHENG[index]; }; EightChar.prototype.getTimeXun = function () { return this._lunar.getTimeXun(); }; EightChar.prototype.getTimeXunKong = function () { return this._lunar.getTimeXunKong(); }; EightChar.prototype.getTaiYuan = function () { var ganIndex = this._lunar.getMonthGanIndexExact() + 1; if (ganIndex >= 10) { ganIndex -= 10; } var zhiIndex = this._lunar.getMonthZhiIndexExact() + 3; if (zhiIndex >= 12) { zhiIndex -= 12; } return LunarUtil.GAN[ganIndex + 1] + LunarUtil.ZHI[zhiIndex + 1]; }; EightChar.prototype.getTaiYuanNaYin = function () { var v = LunarUtil.NAYIN.get(this.getTaiYuan()); return v ? v : ''; }; EightChar.prototype.getTaiXi = function () { var lunar = this._lunar; var ganIndex = (2 == this._sect) ? lunar.getDayGanIndexExact2() : lunar.getDayGanIndexExact(); var zhiIndex = (2 == this._sect) ? lunar.getDayZhiIndexExact2() : lunar.getDayZhiIndexExact(); return LunarUtil.HE_GAN_5[ganIndex] + LunarUtil.HE_ZHI_6[zhiIndex]; }; EightChar.prototype.getTaiXiNaYin = function () { var v = LunarUtil.NAYIN.get(this.getTaiXi()); return v ? v : ''; }; EightChar.prototype.getMingGong = function () { var monthZhiIndex = 0; var timeZhiIndex = 0; for (var i = 0, j = EightChar.MONTH_ZHI.length; i < j; i++) { var zhi = EightChar.MONTH_ZHI[i]; if (this._lunar.getMonthZhiExact() === zhi) { monthZhiIndex = i; } if (this._lunar.getTimeZhi() === zhi) { timeZhiIndex = i; } } var zhiIndex = 26 - (monthZhiIndex + timeZhiIndex); if (zhiIndex > 12) { zhiIndex -= 12; } var jiaZiIndex = LunarUtil.getJiaZiIndex(this._lunar.getMonthInGanZhiExact()) - (monthZhiIndex - zhiIndex); if (jiaZiIndex >= 60) { jiaZiIndex -= 60; } if (jiaZiIndex < 0) { jiaZiIndex += 60; } return LunarUtil.JIA_ZI[jiaZiIndex]; }; EightChar.prototype.getMingGongNaYin = function () { var v = LunarUtil.NAYIN.get(this.getMingGong()); return v ? v : ''; }; EightChar.prototype.getShenGong = function () { var monthZhiIndex = 0; var timeZhiIndex = 0; for (var i = 0, j = EightChar.MONTH_ZHI.length; i < j; i++) { var zhi = EightChar.MONTH_ZHI[i]; if (this._lunar.getMonthZhiExact() === zhi) { monthZhiIndex = i; } if (this._lunar.getTimeZhi() === zhi) { timeZhiIndex = i; } } var zhiIndex = 2 + monthZhiIndex + timeZhiIndex; if (zhiIndex > 12) { zhiIndex -= 12; } var jiaZiIndex = LunarUtil.getJiaZiIndex(this._lunar.getMonthInGanZhiExact()) - (monthZhiIndex - zhiIndex); if (jiaZiIndex >= 60) { jiaZiIndex -= 60; } if (jiaZiIndex < 0) { jiaZiIndex += 60; } return LunarUtil.JIA_ZI[jiaZiIndex]; }; EightChar.prototype.getShenGongNaYin = function () { var v = LunarUtil.NAYIN.get(this.getShenGong()); return v ? v : ''; }; EightChar.prototype.getLunar = function () { return this._lunar; }; EightChar.prototype.getYun = function (gender, sect) { if (sect === void 0) { sect = 1; } return new Yun(this._lunar, gender, sect); }; EightChar.prototype.toString = function () { return this.getYear() + ' ' + this.getMonth() + ' ' + this.getDay() + ' ' + this.getTime(); }; EightChar.MONTH_ZHI = ['', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥', '子', '丑']; EightChar.CHANG_SHENG = ['长生', '沐浴', '冠带', '临官', '帝旺', '衰', '病', '死', '墓', '绝', '胎', '养']; EightChar.CHANG_SHENG_OFFSET = new Dictionary([ ['甲', 1], ['丙', 10], ['戊', 10], ['庚', 7], ['壬', 4], ['乙', 6], ['丁', 9], ['己', 9], ['辛', 0], ['癸', 3] ]); return EightChar; }()); export { EightChar }; //# sourceMappingURL=EightChar.js.map