10天干和12地支结合,形成60个干支为一轮回,即60甲子。如辛亥即天干`辛`与地支`亥`的组合。
60甲子的排列顺序为:
| 序号 | 干支 | 序号 | 干支 | 序号 | 干支 | 序号 | 干支 | 序号 | 干支 |
|----|----|----|----|----|----|----|----|----|----|
| 1 | 甲子 | 13 | 丙子 | 25 | 戊子 | 37 | 庚子 | 49 | 壬子 |
| 2 | 乙丑 | 14 | 丁丑 | 26 | 己丑 | 38 | 辛丑 | 50 | 癸丑 |
| 3 | 丙寅 | 15 | 戊寅 | 27 | 庚寅 | 39 | 壬寅 | 51 | 甲寅 |
| 4 | 丁卯 | 16 | 己卯 | 28 | 辛卯 | 40 | 癸卯 | 52 | 乙卯 |
| 5 | 戊辰 | 17 | 庚辰 | 29 | 壬辰 | 41 | 甲辰 | 53 | 丙辰 |
| 6 | 己巳 | 18 | 辛巳 | 30 | 癸巳 | 42 | 乙巳 | 54 | 丁巳 |
| 7 | 庚午 | 19 | 壬午 | 31 | 甲午 | 43 | 丙午 | 55 | 戊午 |
| 8 | 辛未 | 20 | 癸未 | 32 | 乙未 | 44 | 丁未 | 56 | 己未 |
| 9 | 壬申 | 21 | 甲申 | 33 | 丙申 | 45 | 戊申 | 57 | 庚申 |
| 10 | 癸酉 | 22 | 乙酉 | 34 | 丁酉 | 46 | 己酉 | 58 | 辛酉 |
| 11 | 甲戌 | 23 | 丙戌 | 35 | 戊戌 | 47 | 庚戌 | 59 | 壬戌 |
| 12 | 乙亥 | 24 | 丁亥 | 36 | 己亥 | 48 | 辛亥 | 60 | 癸亥 |
年、月、日、时辰都可以使用干支来表示。
1. .getYearInGanZhi()
> 获取干支纪年(新年以正月初一起算)
2. .getYearGan()
> 获取阴历年的天干(新年以正月初一起算)
3. .getYearZhi()
> 获取阴历年的地支(新年以正月初一起算)
4. .getMonthInGanZhi()
> 获取干支纪月(新的一月以节交接当天零点起算)
5. .getMonthGan()
> 获取阴历月的天干(新的一月以节交接当天零点起算)
6. .getMonthZhi()
> 获取阴历月的地支(新的一月以节交接当天零点起算)
7. .getDayInGanZhi()
> 获取干支纪日
8. .getDayGan()
> 获取阴历日的天干
9. .getDayZhi()
> 获取阴历日的地支
10. .getTimeInGanZhi()
> 获取干支纪时
11. .getTimeGan()
> 获取时辰的天干
12. .getTimeZhi()
> 获取时辰的地支
由于国标农历新年是以正月初一起算,而民间很多时候是以立春开始算,算八字则更需要精确到以节交接的时刻,所以提供更多的方法。
1. .getYearInGanZhiByLiChun()
> 获取干支纪年(新年以立春零点起算)
2. .getYearGanByLiChun()
> 获取阴历年的天干(新年以立春零点起算)
3. .getYearZhiByLiChun()
> 获取阴历年的地支(新年以立春零点起算)
4. .getYearInGanZhiExact()
> 获取干支纪年(新年以立春节气交接的时刻起算)
5. .getYearGanExact()
> 获取阴历年的天干(新年以立春节气交接的时刻起算)
6. .getYearZhiExact()
> 获取阴历年的地支(新年以立春节气交接的时刻起算)
例如立春时刻为14:30:02,则可能导致一天中上午属于上一年,下午属于下一年,尤其是计算八字时需要如此精确的划分,否则失之毫厘谬以千里。
月份则相对更统一一些,都是以节交接作为月份分隔的依据,但是计算八字也需要精确到时刻。
1. .getMonthInGanZhiExact()
> 获取干支纪月(新的一月以节交接准确时刻起算)
2. .getMonthGanExact()
> 获取阴历月的天干(新的一月以节交接准确时刻起算)
3. .getMonthZhiExact()
> 获取阴历月的地支(新的一月以节交接准确时刻起算)
由于八字计算涉及到早子时(00:00-00:59)和晚子时(23:00-23:59),由于晚子时的日干支存在争议,所以日天干和日地支需要按不同的流派来更准确的表示。
1. .getDayInGanZhiExact()
> 获取精确的干支纪日(流派1,晚子时日柱算明天)
2. .getDayGanExact()
> 获取阴历日的精确天干(流派1,晚子时日柱算明天)
3. .getDayZhiExact()
> 获取阴历日的精确地支(流派1,晚子时日柱算明天)
4. .getDayInGanZhiExact2()
> 获取精确的干支纪日(流派2,晚子时日柱算当天)
5. .getDayGanExact2()
> 获取阴历日的精确天干(流派2,晚子时日柱算当天)
6. .getDayZhiExact2()
> 获取阴历日的精确地支(流派2,晚子时日柱算当天)
注:八字计算建议使用[EightChar](https://www.kancloud.cn/onep2p/cux-calendar/3213975)
### 示例代码
```
const d = Lunar.fromDate(new Date());
console.log('阴历年:'+d.getYear());
console.log('阴历月:'+d.getMonth());
console.log('阴历日:'+d.getDay());
//以正月初一起
console.log('年天干:'+d.getYearGan());
console.log('年地支:'+d.getYearZhi());
console.log('年干支:'+d.getYearInGanZhi());
//以立春当天起
console.log('年天干:'+d.getYearGanByLiChun());
console.log('年地支:'+d.getYearZhiByLiChun());
console.log('年干支:'+d.getYearInGanZhiByLiChun());
//以立春交接时刻起
console.log('年天干:'+d.getYearGanExact());
console.log('年地支:'+d.getYearZhiExact());
console.log('年干支:'+d.getYearInGanZhiExact());
//以节交接当天起
console.log('月天干:'+d.getMonthGan());
console.log('月地支:'+d.getMonthZhi());
console.log('月干支:'+d.getMonthInGanZhi());
//以节交接时刻起
console.log('月天干:'+d.getMonthGanExact());
console.log('月地支:'+d.getMonthZhiExact());
console.log('月干支:'+d.getMonthInGanZhiExact());
console.log('日天干:'+d.getDayGan());
console.log('日地支:'+d.getDayZhi());
console.log('日干支:'+d.getDayInGanZhi());
console.log('时辰天干:'+d.getTimeGan());
console.log('时辰地支:'+d.getTimeZhi());
console.log('时辰干支:'+d.getTimeInGanZhi());
```
- 关于cux-calendar
- 简要介绍
- 快速开始
- 阳历 Solar
- 实例化
- toString
- 获取年、月、日
- 儒略日
- 获取星期
- 判断是否闰年
- 节日
- 星座
- 日期推移
- 阳历日期相减
- 日期比较
- 薪资比例
- 阳历转阴历
- 阳历周 SolarWeek
- 实例化
- toString
- 获取年、月、日
- 一周的起点
- 本月第几周
- 本年第几周
- 本周每一天
- 第一天
- 周的推移
- 阳历月 SolarMonth
- 实例化
- toString
- 获取年、月
- 本月每一天
- 本月每一周
- 月推移
- 阳历季度 SolarSeason
- 实例化
- toString
- 获取年、月
- 本年第几季度
- 本季度每一月
- 季度推移
- 阳历半年 SolarHalfYear
- 实例化
- toString
- 获取年、月
- 本年第几半年
- 本半年每一月
- 半年推移
- 阳历年 SolarYear
- 实例化
- toString
- 获取年
- 本年每一月
- 年推移
- 阳历工具 SolarUtil
- 是否闰年
- 某年天数
- 阳历某月天数
- 某月周数
- 某天位于当年第几天
- 阴历 Lunar
- 实例化
- toString
- 获取年、月、日
- 获取时辰
- 获取星期
- 节日
- 干支
- 禄
- 生肖
- 节气
- 物候
- 数九
- 三伏
- 六曜
- 二十八宿
- 七政(七曜)
- 四宫
- 四神兽
- 彭祖百忌
- 八卦方位
- 吉神方位
- 胎神方位
- 太岁方位
- 冲煞
- 纳音
- 八字
- 旬、旬空(空亡)
- 建除十二值星
- 十二天神
- 每日宜忌
- 时辰宜忌
- 吉神凶煞
- 月相
- 九星
- 日期推移
- 转阳历
- 转佛历
- 转道历
- 阴历月 LunarMonth
- 实例化
- toString
- 获取年、月
- 本月天数
- 是否闰月
- 初一
- 月推移
- 阴历年 LunarYear
- 实例化
- toString
- 获取年
- 获取阴历月
- 获取闰月
- 获取天数
- 获取节气表
- 灶马头
- 三元九运
- 年推移
- 阴历工具 LunarUtil
- 时辰
- 佛历 Foto
- 实例化
- toString
- 获取年、月、日
- 因果犯忌
- 纪念日
- 月斋
- 十斋日
- 六斋日
- 朔望斋
- 观音斋
- 杨公忌
- 二十七星宿
- 转阴历
- 道历 Tao
- 实例化
- toString
- 获取年、月、日
- 节日
- 三会日
- 三元日
- 八节日
- 五腊日
- 八会日
- 戊日
- 天赦日
- 转阴历
- 法定假日 HolidayUtil
- 法定假日
- 数据修正及补充
- 指定日期是否放假或调休
- 指定月份的假期
- 指定年份的假期
- 节日相关的假期
