Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2024年立春算法的年柱没有随节气换 #32

Open
charleybaby opened this issue Feb 8, 2024 · 9 comments
Open

2024年立春算法的年柱没有随节气换 #32

charleybaby opened this issue Feb 8, 2024 · 9 comments

Comments

@charleybaby
Copy link

如题,2.4日立春之后依然显示癸卯年。难道是因为今年立春早于农历新年的原因?

@cuba3
Copy link
Member

cuba3 commented Feb 18, 2024

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo

import datetime
import cnlunar

a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法

b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

@orallin
Copy link

orallin commented Feb 18, 2024

如题,2.4日立春之后依然显示癸卯年。难道是因为今年立春早于农历

这个文档上有说

@charleybaby
Copy link
Author

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo

import datetime import cnlunar

a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法

b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

你好,问题就是我一直按照立春切换算法,year8Char='beginningOfSpring,但是结果是没有切换的,所以才问

@cuba3
Copy link
Member

cuba3 commented Feb 18, 2024

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo
import datetime import cnlunar
a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法
b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

你好,问题就是我一直按照立春切换算法,year8Char='beginningOfSpring,但是结果是没有切换的,所以才问

我看了一下源码,好像是之前提出这个需求的人额外提了立春在春节前,立春变年柱的需求,我删掉一个需求即可

@cuba3
Copy link
Member

cuba3 commented Feb 18, 2024

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo
import datetime import cnlunar
a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法
b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

你好,问题就是我一直按照立春切换算法,year8Char='beginningOfSpring,但是结果是没有切换的,所以才问

我看了一下源码,好像是之前提出这个需求的人额外提了立春在春节前,立春变年柱的需求,我删掉一个需求即可

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo
import datetime import cnlunar
a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法
b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

你好,问题就是我一直按照立春切换算法,year8Char='beginningOfSpring,但是结果是没有切换的,所以才问

刚好,有没有算法引用的书籍,这个参数我加的也很迷,比如2月3日是兔年腊月大廿四,那2月4日变年柱就变成龙年腊月大廿五,那2015年还没过立春又会出现一个腊月大廿五(2025年1月24日)这个要怎么显示?

@charleybaby
Copy link
Author

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo
import datetime import cnlunar
a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法
b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

你好,问题就是我一直按照立春切换算法,year8Char='beginningOfSpring,但是结果是没有切换的,所以才问

我看了一下源码,好像是之前提出这个需求的人额外提了立春在春节前,立春变年柱的需求,我删掉一个需求即可

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo
import datetime import cnlunar
a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法
b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

你好,问题就是我一直按照立春切换算法,year8Char='beginningOfSpring,但是结果是没有切换的,所以才问

刚好,有没有算法引用的书籍,这个参数我加的也很迷,比如2月3日是兔年腊月大廿四,那2月4日变年柱就变成龙年腊月大廿五,那2015年还没过立春又会出现一个腊月大廿五(2025年1月24日)这个要怎么显示?

你好,书籍我不太清楚。只知道有种通识是立春换年柱,今年是比较少见的立春在新年之前。2025年的腊月有的写成十二月(小)廿五,用大小区分。

@cuba3
Copy link
Member

cuba3 commented Feb 18, 2024

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo
import datetime import cnlunar
a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法
b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

你好,问题就是我一直按照立春切换算法,year8Char='beginningOfSpring,但是结果是没有切换的,所以才问

我看了一下源码,好像是之前提出这个需求的人额外提了立春在春节前,立春变年柱的需求,我删掉一个需求即可

算法存在争议,不同书籍定义不一样,目前是按《钦定协纪辩方书》春节变年柱,如果希望以立春变更,请在year8Char参数中输入'beginningOfSpring',以下是demo
import datetime import cnlunar
a = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char') # 常规算法
b = cnlunar.Lunar(datetime.datetime(2024, 2, 4, 10, 30), godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法

你好,问题就是我一直按照立春切换算法,year8Char='beginningOfSpring,但是结果是没有切换的,所以才问

刚好,有没有算法引用的书籍,这个参数我加的也很迷,比如2月3日是兔年腊月大廿四,那2月4日变年柱就变成龙年腊月大廿五,那2015年还没过立春又会出现一个腊月大廿五(2025年1月24日)这个要怎么显示?

你好,书籍我不太清楚。只知道有种通识是立春换年柱,今年是比较少见的立春在新年之前。2025年的腊月有的写成十二月(小)廿五,用大小区分。

大小区分的是农历大小月,和第一个第二个无关……就是立春换年柱和正月建寅有所冲突就是,最新节点已直接强更,但这个算法没有出处,有逻辑上的错误,这个开源项目是我厦大的毕设,其余部分都有引用书籍内容,这个立春年柱实在是一个坑。《钦定协纪辨方书》当年就是将各种历书做大一统,为什么为“钦定”,即人皇为天子,天子定历法。

@orallin
Copy link

orallin commented Feb 19, 2024

【结论】:不是一到立春就换太岁(即换年柱)的

因为我司就是做国学项目的,所以有八字排盘软件,八字里新旧太岁的切换在24年2月4日 16点26分53秒,因为客观原因导致的误差会导致算法层面也会有误差,这种误差对最终结果不太有影响。如果对四柱有刚需,专业的命理师也会有倒推出准确时间的方法,这个问题不大的。

@cuba3
Copy link
Member

cuba3 commented Feb 21, 2024

【结论】:不是一到立春就换太岁(即换年柱)的

因为我司就是做国学项目的,所以有八字排盘软件,八字里新旧太岁的切换在24年2月4日 16点26分53秒,因为客观原因导致的误差会导致算法层面也会有误差,这种误差对最终结果不太有影响。如果对四柱有刚需,专业的命理师也会有倒推出准确时间的方法,这个问题不大的。

客观地讲,“命书”和《历书》本来就不一样,”命书“借用《历书》为了取整,构想设计出了一颗与木星逆行的太岁,木星11.86年太岁12年,我这个项目其实只是毕业设计,基于论文层面,肯定是要基于比较统一可信矛盾较少的书籍来写,有所引用。而《历书》在乾隆时期随着《四库全书 - 钦定协纪辨方书》的编撰,统一了历法两百多年,沿用至今自然也更权威。关于国学内容不是本项目的初衷,所以项目最多也只到日家范畴,再进时分秒也不通用。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants