@iro/calendar
Version:
lunar is a calendar library for Solar and Chinese Lunar.
359 lines • 13.4 kB
JavaScript
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