农历数据变量说明
1. StartYear
数据起始年份(公历)
2. EndYear
数据终止年份(不包含该年)
3. PreLeapIndex
(StartYear - 1)
年农历十月及以后的闰月索引,对应PreMonth
中的序号,当前为-1,表示1799年农历十月以后无闰月。
4. PreMonth
(StartYear - 1)
年农历十月及以后的月份,每月初一在 StartYear 年的年内序数。PreMonth
中分别对应农历的十月、十一月、十二月、正月。
5. MonthInfo
农历月份信息,一年用4个字节表示。数据长度为 (EndYear - StartYear)
第31位 | 第30-27位 | 第26-23位 | 第22-17位 | 第16-13位 | 第12-0位 |
---|---|---|---|---|---|
保留 | 元旦天干序数 | 元旦地支序数 | 农历正月初一的年内序数 | 闰月 | 一个比特对应一个月份大小 |
月份大小数据是月份小的在低位, 月份大的在高,即正月在最低位。 以1900年为例,4个字节的数据展开成二进制位:
0 | 0000 | 1010 | 011110 | 1000 | 1 0 1 1 0 1 1 0 1 0 0 1 0 |
---|---|---|---|---|---|
保留 | 0(甲) | 10(戌) | 30 (1月31日) | 闰八月 | 从左往右依次为腊月, 冬月…闰八月, 八月, … , 正月的天数。 |
P.S. 农历月份对应的位为0, 表示这个月为29天(小月), 为1表示有30天(大月).
6. SolarTermsSource & SolarTermsIndex
二十四节气信息, 节气数据将由 SolarTermsSource
和 SolarTermsIndex
中的数据生成。
一年用6个字节表示,每个节气使用两比特数据。
第一字节最高两位 | 第一字节其余6位至第六字节共46个位 |
---|---|
小寒的年内序数减3 | 每个节气距离上一节气的天数, 共23组 |
小寒的年内序数已给出,剩下的23个节气分别对应这23组数据, 有以下含义:
二进制位 | 意义 | 描述 |
---|---|---|
00 | 14天 | 当前对应的节气距离上一节气为14天 |
01 | 15天 | 当前对应的节气距离上一节气为15天 |
10 | 16天 | 当前对应的节气距离上一节气为16天 |
11 | 17天 | 当前对应的节气距离上一节气为17天 |
由上表可以看出,除小寒以外的其余23个节气的两比特数据加上14就是距离上一节气的天数。 节气顺序:
节气 | 中气 | 节气 | 中气 | 节气 | 中气 | 节气 | 中气 | 节气 | 中气 | 节气 | 中气 |
---|---|---|---|---|---|---|---|---|---|---|---|
小寒 | 大寒 | 立春 | 雨水 | 惊蛰 | 春分 | 清明 | 谷雨 | 立夏 | 小满 | 芒种 | 夏至 |
小暑 | 大暑 | 立秋 | 处暑 | 白露 | 秋分 | 寒露 | 霜降 | 立冬 | 小雪 | 大雪 | 冬至 |
7. PreDongzhiOrder
(StartYear - 1)
年冬至日在StartYear
年的年内序数, 这个数据将被用在 StartYear
年数九
的计算上.
8. ExtremeSeason
每年数九、入梅、出梅及三伏的信息,一年用两个字节表示。
第15-11位 | 第10-6位 | 第5-1位 | 最末位 |
---|---|---|---|
入梅 | 出梅 | 初伏 | 末伏 |
一九
即是冬至, 往后到九九
的每个九
相差9
天, 可顺利推算出来, 故数九
信息省略。初伏
信息:该天数加上180
为初伏这一日的年内序数。中伏
信息:"三伏"
天的"中伏"
在"初伏"
后10
天,而"末伏"
在"中伏"
后10
天或20
天,因此"中伏"
信息省略。末伏
信息:若该位为1
,表示末伏距离初伏30
天,为0
表示末伏距离初伏20
天。入梅
信息:该天数加上150
为入梅这一日的年内序数。出梅
信息:该天数加上180
为出梅这一日的年内序数。
1. StartYear
数据起始年份(公历)
2. EndYear
数据终止年份(不包含该年)
3. PreLeapIndex
(StartYear - 1)
年农历十月及以后的闰月索引,对应PreMonth
中的序号,当前为-1,表示1799年农历十月以后无闰月。
4. PreMonth
(StartYear - 1)
年农历十月及以后的月份,每月初一在 StartYear 年的年内序数。PreMonth
中分别对应农历的十月、十一月、十二月、正月。
5. MonthInfo
农历月份信息,一年用4个字节表示。数据长度为 (EndYear - StartYear)
第31位 | 第30-27位 | 第26-23位 | 第22-17位 | 第16-13位 | 第12-0位 |
---|---|---|---|---|---|
保留 | 元旦天干序数 | 元旦地支序数 | 农历正月初一的年内序数 | 闰月 | 一个比特对应一个月份大小 |
月份大小数据是月份小的在低位, 月份大的在高,即正月在最低位。 以1900年为例,4个字节的数据展开成二进制位:
第31位 | 第30-27位 | 第26-23位 | 第22-17位 | 第16-13位 | 第12-0位 |
---|---|---|---|---|---|
保留 | 元旦天干序数 | 元旦地支序数 | 农历正月初一的年内序数 | 闰月 | 一个比特对应一个月份大小 |
6. SolarTermsSource & SolarTermsIndex
二十四节气信息, 节气数据将由 SolarTermsSource
和 SolarTermsIndex
中的数据生成。
一年用6个字节表示,每个节气使用两比特数据。
第一字节最高两位 | 第一字节其余6位至第六字节共46个位 |
---|---|
小寒的年内序数减3 | 每个节气距离上一节气的天数, 共23组 |
小寒的年内序数已给出,剩下的23个节气分别对应这23组数据, 有以下含义:
二进制位 | 意义 | 描述 |
---|---|---|
00 | 14天 | 当前对应的节气距离上一节气为14天 |
01 | 15天 | 当前对应的节气距离上一节气为15天 |
10 | 16天 | 当前对应的节气距离上一节气为16天 |
11 | 17天 | 当前对应的节气距离上一节气为17天 |
由上表可以看出,除小寒以外的其余23个节气的两比特数据加上14就是距离上一节气的天数。下表为节气顺序:
节气 | 中气 | 节气 | 中气 | 节气 | 中气 | 节气 | 中气 | 节气 | 中气 | 节气 | 中气 |
---|---|---|---|---|---|---|---|---|---|---|---|
小寒 | 大寒 | 立春 | 雨水 | 惊蛰 | 春分 | 清明 | 谷雨 | 立夏 | 小满 | 芒种 | 夏至 |
小暑 | 大暑 | 立秋 | 处暑 | 白露 | 秋分 | 寒露 | 霜降 | 立冬 | 小雪 | 大雪 | 冬至 |
7. PreDongzhiOrder
(StartYear - 1)
年冬至日在StartYear
年的年内序数, 这个数据将被用在 StartYear
年数九
的计算上.
8. ExtremeSeason
每年数九、入梅、出梅及三伏的信息,一年用两个字节表示。
第15-11位 | 第10-6位 | 第5-1位 | 最末位 |
---|---|---|---|
入梅 | 出梅 | 初伏 | 末伏 |
一九
即是冬至, 往后到九九
的每个九
相差9
天, 可顺利推算出来, 故数九
信息省略。初伏
信息:该天数加上180
为初伏这一日的年内序数。中伏
信息:"三伏"
天的"中伏"
在"初伏"
后10
天,而"末伏"
在"中伏"
后10
天或20
天,因此"中伏"
信息省略。末伏
信息:若该位为1
,表示末伏距离初伏30
天,为0
表示末伏距离初伏20
天。入梅
信息:该天数加上150
为入梅这一日的年内序数。出梅
信息:该天数加上180
为出梅这一日的年内序数。
- 标题: 农历数据变量说明
- 作者: 静凇
- 创建于 : 2024-03-25 10:16:05
- 更新于 : 2025-04-27 23:11:36
- 链接: https://blog.zhangyirui.cn/2024/03/25/Lunar-data-variable-description/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。