chuxinyuan
看起来很厉害啊,不过细节逻辑还是会有问题,比方说
如2023年2月4日立春,早于春节1月22日
以及
1997年2月3日出生者,……,但因立春在2月4日,故属牛而非鼠
------------ 分割线一下 ------
回到生肖的划分问题本身,这本身是匹配地支来方便纪年的,所以核心在于农历新年第一天到底在什么位置。在古代这是官方来定(年号等)。在现代,紫金山天文台是发布过计算标准的,包括生肖的对应规则。当然,这个计算规则中就是所谓的“官方口径”的正月初一分界。Wiki的农历页面也有一些计算规则。
我能找到的,以立春为分界来划分生肖,也就是一些八字算命。不过我没能力考证古代的新年第一天是不是以立春来定(官方的规则?)。
但是考虑到生肖本来就是为了方便纪年,以及现在是有“官方”规则的,我感觉如果真的要去做的话,没必要再去纠结曾经的,或者找不到多少支撑论据的所谓“正确”规则。
PS:昨天在搜这个话题的时候也找到一个公历农历转换的php项目,也包含生肖,看起来是考虑了立春的实现。
PS:真的看紫金山天文台的日历资料的话,节气的分割是精确到“分”的,不过身份证上只能精确到“日”,所以真要做按节气的分割的话还得再考虑下将大家缺失的“时”和“分”都填补一下。