《历术甲子篇》冬至合朔表

《历术甲子篇》冬至合朔表《历术甲子篇》所用为四分历,岁实365又1/4,朔策29又499/940

《历术甲子篇》所用为四分历,岁实365又1/4,朔策29又499/940。

殷历创制于公元前427年(周考王十四年),沿用至公元前105年(汉武帝元封六年,次年改历),即本表可以用于参照史料的适用范围。

公元前427年,是年实际天象日月合朔与冬至同日同时,在子时正,是制历的理想起点。历元干支为己酉。由此用四分术,反推以蔀首为甲子的时日作为历元,即需要反推15蔀共1140年(BC1567年作为历元)。

《历术甲子篇》以十一月(冬至所在月)为岁首,而建寅为正。程序中使用的为年中置闰法。

tiangan = ["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]
dizhi = ["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"]
yuefen =["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]
direction = ['正东','正南','正西','正北']
suiyang = ["焉逢","端蒙","游兆","彊梧","徒維","祝犁","商橫","昭陽","橫艾","尚章"]
suiyin = ["困敦","赤奮若","攝提格","單閼","執徐","大荒落","敦牂","協洽","涒灘","作鄂","淹茂","大淵獻"]
lsjzp = open("历术甲子篇.csv",'w')
ganzhi =['']*60
for i in range(60):
	ganzhi[i] = tiangan[i%10]+dizhi[(i)%12]
bsgz=[0]*20 #蔀首干支
for i in range(20):
   bsgz[i] = (i*39)%60
#基本常数
yue = 29+499/940 #朔策
zai = 12 * yue #太阴年
sui = 365+1/4 #岁实
sdrf = 940 #朔旦日法
dzrf = 32 #冬至日法
epoch = -1567 #太初元年为《历术甲子篇》历元,非汉武帝太初元年(-104)
sddy = int(zai) % 60 #朔旦大余54
sddy_0 = 0 - sddy #朔旦大余前值
sdxy= (499 * 12 ) % 940 #朔旦小余348
sdxy_0 = 0 - sdxy #朔旦小余前值
dzdy = int(sui) % 60 #冬至大余
dzdy_0 = 0 - dzdy
dzxy = 8 #冬至小余
dzxy_0 = 0 - dzxy
ry = 0

header = ["公元纪年","干支纪年","年序","年名","纪数","蔀数","蔀首","入蔀年","章数","章首","年前十一月朔旦大余","年前十一月朔旦小余","年前十一月朔日干支","年前十一月合朔时刻","年前十一月冬至大余","年前十一月冬至小余","年前十一月冬至干支","年前十一月冬至时刻",'月',"方向"]
lsjzp.write(','.join(header)+'\n')
print("干支纪年","年序","\t  年名","\t   入蔀数","入蔀年","蔀首","章数","章首","前大余","\t前小余","\t前朔日","\t合朔时刻","\t后大余","\t后小余","\t冬至干支"," 冬至时刻",'\t月',"\t\t 方向")

def qy(dy_0,xy_0,rf,dy,xy): #求大小余分(余分前值,日法,余分)
    xy_0 += xy
    if xy_0 >= rf:
        dy_0 += 1
        xy_0 -= rf
    dy_0 = (dy_0 + dy) % 60
    return dy_0,xy_0

def heshuo(yf,rf): #求合朔时间(余分,日法)
    chen = yf / rf * 24  # 合朔时间
    chen_h = int(chen)
    chen_m = int((chen - chen_h) * 60)
    hssj = str(chen_h)+'时'+str(chen_m)+'分'
    return hssj

#i+1为是年,i为是年前一年
for i in range(4561): #一元=3*一纪=3*20=一蔀=3*20*4*一掌=3*20*4*19
    if ry >= 19:     #置闰方法:闰余法
        sddy_0,sdxy_0 = qy(sddy_0,sdxy_0,sdrf,sddy+int(yue),sdxy+499) #加一个闰月,大余为29,小余为499
        ry -= 19
    else:
        sddy_0,sdxy_0 = qy(sddy_0,sdxy_0,sdrf,sddy,sdxy)
    ry += 7 #每年闰余为7/19月
    month = ''
    if ry >= 19:
        yry = (ry-7)*12
        for j in range(12):
            yry += 7
            if yry >= 228:
                month= '闰' + yuefen[(j - 2) % 12]
                break
    dzdy_0, dzxy_0 = qy(dzdy_0,dzxy_0, dzrf, dzdy, dzxy)
    dz = int((dzxy_0/32)*12)
    ce = epoch + i
    if sdxy_0 == 0: #朔旦无小余时,为一蔀蔀首
        bu = ganzhi[sddy_0] #输出蔀首名(是年前十一月朔旦冬至干支)
    if sddy_0 == dzdy_0: #朔旦大余=冬至大余时,为一章章首
        zhang = ganzhi[sddy_0] #输出章首名
    rbs = (ce - epoch ) // 76
    if ce >= 0: ce += 1 #无公元0年
    if ce < 0: ce = 'BC'+str(ce)[1:]+'年'
    else: ce = "公元"+str(ce)+'年'
    ls = [ce,tiangan[i%10]+dizhi[(i+2)%12],i+1,suiyang[i%10]+suiyin[(i+2)%12],(i//1520)%3+1,(i//76)%20+1,bu,i%76+1,i//19+1,zhang,(sddy_0-bsgz[rbs%20])%60,sdxy_0,
          ganzhi[sddy_0], heshuo(sdxy_0, 940),(dzdy_0-bsgz[rbs%20])%60,dzxy_0,ganzhi[dzdy_0],str(dz*2)+' '+dizhi[dz]+'时',month,direction[(dz//3-1)%4]]
    lsjzp.write(','.join('%s' %id for id in ls)+'\n')
    if i < 77: #输出甲子蔀以供参考
	    print(tiangan[i%10]+dizhi[(i+2)%12],'\t',i+1,'\t',suiyang[i%10]+suiyin[(i+2)%12],'\t',(i//76+1)%20, '',i%76+1,'\t',bu,' ',i//19+1,'',zhang,' ',sddy_0, '\t',sdxy_0,'\t',ganzhi[sddy_0],'  ',heshuo(sdxy_0, 940),'\t',dzdy_0,'\t',dzxy_0,' \t',ganzhi[dzdy_0],'\t  '+str(dz*2)+' '+dizhi[dz]+'时','\t',month,'\t',direction[dz//3-1])

lsjzp.close()

程序运行生成一元三纪4560年的每年年前十一月朔旦冬至的朔闰表(csv格式文件)

甲子蔀 输出参考(源程序在Python脚本下输出对齐):

甲寅      1      焉逢攝提格      1  1      甲子   1  甲子   0      0      甲子    0时0分      0      0       甲子       0 子时                正北
乙卯      2      端蒙單閼      1  2      甲子   1  甲子   54      348      戊午    8时53分      5      8       己巳       6 卯时                正东
丙辰      3      游兆執徐      1  3      甲子   1  甲子   48      696      壬子    17时46分      10      16       甲戌       12 午时      闰七月      正南
丁巳      4      彊梧大荒落      1  4      甲子   1  甲子   12      603      丙子    15时23分      15      24       己卯       18 酉时                正西
戊午      5      徒維敦牂      1  5      甲子   1  甲子   7      11      辛未    0时16分      21      0       乙酉       0 子时                正北
己未      6      祝犁協洽      1  6      甲子   1  甲子   1      359      乙丑    9时9分      26      8       庚寅       6 卯时      闰四月      正东
庚申      7      商橫涒灘      1  7      甲子   1  甲子   25      266      己丑    6时47分      31      16       乙未       12 午时                正南
辛酉      8      昭陽作鄂      1  8      甲子   1  甲子   19      614      癸未    15时40分      36      24       庚子       18 酉时                正西
壬戌      9      橫艾淹茂      1  9      甲子   1  甲子   14      22      戊寅    0时33分      42      0       丙午       0 子时      闰十二月      正北
癸亥      10      尚章大淵獻      1  10      甲子   1  甲子   37      869      辛丑    22时11分      47      8       辛亥       6 卯时                正东
甲子      11      焉逢困敦      1  11      甲子   1  甲子   32      277      丙申    7时4分      52      16       丙辰       12 午时      闰九月      正南
乙丑      12      端蒙赤奮若      1  12      甲子   1  甲子   56      184      庚申    4时41分      57      24       辛酉       18 酉时                正西
丙寅      13      游兆攝提格      1  13      甲子   1  甲子   50      532      甲寅    13时34分      3      0       丁卯       0 子时                正北
丁卯      14      彊梧單閼      1  14      甲子   1  甲子   44      880      戊申    22时28分      8      8       壬申       6 卯时      闰五月      正东
戊辰      15      徒維執徐      1  15      甲子   1  甲子   8      787      壬申    20时5分      13      16       丁丑       12 午时                正南
己巳      16      祝犁大荒落      1  16      甲子   1  甲子   3      195      丁卯    4时58分      18      24       壬午       18 酉时                正西
庚午      17      商橫敦牂      1  17      甲子   1  甲子   57      543      辛酉    13时51分      24      0       戊子       0 子时      闰二月      正北
辛未      18      昭陽協洽      1  18      甲子   1  甲子   21      450      乙酉    11时29分      29      8       癸巳       6 卯时                正东
壬申      19      橫艾涒灘      1  19      甲子   1  甲子   15      798      己卯    20时22分      34      16       戊戌       12 午时      闰十月      正南
癸酉      20      尚章作鄂      1  20      甲子   2  癸卯   39      705      癸卯    18时0分      39      24       癸卯       18 酉时                正西
甲戌      21      焉逢淹茂      1  21      甲子   2  癸卯   34      113      戊戌    2时53分      45      0       己酉       0 子时                正北
乙亥      22      端蒙大淵獻      1  22      甲子   2  癸卯   28      461      壬辰    11时46分      50      8       甲寅       6 卯时      闰七月      正东
丙子      23      游兆困敦      1  23      甲子   2  癸卯   52      368      丙辰    9时23分      55      16       己未       12 午时                正南
丁丑      24      彊梧赤奮若      1  24      甲子   2  癸卯   46      716      庚戌    18时16分      0      24       甲子       18 酉时                正西
戊寅      25      徒維攝提格      1  25      甲子   2  癸卯   41      124      乙巳    3时9分      6      0       庚午       0 子时      闰四月      正北
己卯      26      祝犁單閼      1  26      甲子   2  癸卯   5      31      己巳    0时47分      11      8       乙亥       6 卯时                正东
庚辰      27      商橫執徐      1  27      甲子   2  癸卯   59      379      癸亥    9时40分      16      16       庚辰       12 午时                正南
辛巳      28      昭陽大荒落      1  28      甲子   2  癸卯   53      727      丁巳    18时33分      21      24       乙酉       18 酉时      闰十二月      正西
壬午      29      橫艾敦牂      1  29      甲子   2  癸卯   17      634      辛巳    16时11分      27      0       辛卯       0 子时                正北
癸未      30      尚章協洽      1  30      甲子   2  癸卯   12      42      丙子    1时4分      32      8       丙申       6 卯时      闰九月      正东
甲申      31      焉逢涒灘      1  31      甲子   2  癸卯   35      889      己亥    22时41分      37      16       辛丑       12 午时                正南
乙酉      32      端蒙作鄂      1  32      甲子   2  癸卯   30      297      甲午    7时34分      42      24       丙午       18 酉时                正西
丙戌      33      游兆淹茂      1  33      甲子   2  癸卯   24      645      戊子    16时28分      48      0       壬子       0 子时      闰五月      正北
丁亥      34      彊梧大淵獻      1  34      甲子   2  癸卯   48      552      壬子    14时5分      53      8       丁巳       6 卯时                正东
戊子      35      徒維困敦      1  35      甲子   2  癸卯   42      900      丙午    22时58分      58      16       壬戌       12 午时                正南
己丑      36      祝犁赤奮若      1  36      甲子   2  癸卯   37      308      辛丑    7时51分      3      24       丁卯       18 酉时      闰二月      正西
庚寅      37      商橫攝提格      1  37      甲子   2  癸卯   1      215      乙丑    5时29分      9      0       癸酉       0 子时                正北
辛卯      38      昭陽單閼      1  38      甲子   2  癸卯   55      563      己未    14时22分      14      8       戊寅       6 卯时      闰十月      正东
壬辰      39      橫艾執徐      1  39      甲子   3  癸未   19      470      癸未    12时0分      19      16       癸未       12 午时                正南
癸巳      40      尚章大荒落      1  40      甲子   3  癸未   13      818      丁丑    20时53分      24      24       戊子       18 酉时                正西
甲午      41      焉逢敦牂      1  41      甲子   3  癸未   8      226      壬申    5时46分      30      0       甲午       0 子时      闰七月      正北
乙未      42      端蒙協洽      1  42      甲子   3  癸未   32      133      丙申    3时23分      35      8       己亥       6 卯时                正东
丙申      43      游兆涒灘      1  43      甲子   3  癸未   26      481      庚寅    12时16分      40      16       甲辰       12 午时                正南
丁酉      44      彊梧作鄂      1  44      甲子   3  癸未   20      829      甲申    21时9分      45      24       己酉       18 酉时      闰四月      正西
戊戌      45      徒維淹茂      1  45      甲子   3  癸未   44      736      戊申    18时47分      51      0       乙卯       0 子时                正北
己亥      46      祝犁大淵獻      1  46      甲子   3  癸未   39      144      癸卯    3时40分      56      8       庚申       6 卯时                正东
庚子      47      商橫困敦      1  47      甲子   3  癸未   33      492      丁酉    12时33分      1      16       乙丑       12 午时      闰十二月      正南
辛丑      48      昭陽赤奮若      1  48      甲子   3  癸未   57      399      辛酉    10时11分      6      24       庚午       18 酉时                正西
壬寅      49      橫艾攝提格      1  49      甲子   3  癸未   51      747      乙卯    19时4分      12      0       丙子       0 子时      闰九月      正北
癸卯      50      尚章單閼      1  50      甲子   3  癸未   15      654      己卯    16时41分      17      8       辛巳       6 卯时                正东
甲辰      51      焉逢執徐      1  51      甲子   3  癸未   10      62      甲戌    1时34分      22      16       丙戌       12 午时                正南
乙巳      52      端蒙大荒落      1  52      甲子   3  癸未   4      410      戊辰    10时28分      27      24       辛卯       18 酉时      闰五月      正西
丙午      53      游兆敦牂      1  53      甲子   3  癸未   28      317      壬辰    8时5分      33      0       丁酉       0 子时                正北
丁未      54      彊梧協洽      1  54      甲子   3  癸未   22      665      丙戌    16时58分      38      8       壬寅       6 卯时                正东
戊申      55      徒維涒灘      1  55      甲子   3  癸未   17      73      辛巳    1时51分      43      16       丁未       12 午时      闰二月      正南
己酉      56      祝犁作鄂      1  56      甲子   3  癸未   40      920      甲辰    23时29分      48      24       壬子       18 酉时                正西
庚戌      57      商橫淹茂      1  57      甲子   3  癸未   35      328      己亥    8时22分      54      0       戊午       0 子时      闰十月      正北
辛亥      58      昭陽大淵獻      1  58      甲子   4  癸亥   59      235      癸亥    6时0分      59      8       癸亥       6 卯时                正东
壬子      59      橫艾困敦      1  59      甲子   4  癸亥   53      583      丁巳    14时53分      4      16       戊辰       12 午时                正南
癸丑      60      尚章赤奮若      1  60      甲子   4  癸亥   47      931      辛亥    23时46分      9      24       癸酉       18 酉时      闰七月      正西
甲寅      61      焉逢攝提格      1  61      甲子   4  癸亥   11      838      乙亥    21时23分      15      0       己卯       0 子时                正北
乙卯      62      端蒙單閼      1  62      甲子   4  癸亥   6      246      庚午    6时16分      20      8       甲申       6 卯时                正东
丙辰      63      游兆執徐      1  63      甲子   4  癸亥   0      594      甲子    15时9分      25      16       己丑       12 午时      闰四月      正南
丁巳      64      彊梧大荒落      1  64      甲子   4  癸亥   24      501      戊子    12时47分      30      24       甲午       18 酉时                正西
戊午      65      徒維敦牂      1  65      甲子   4  癸亥   18      849      壬午    21时40分      36      0       庚子       0 子时                正北
己未      66      祝犁協洽      1  66      甲子   4  癸亥   13      257      丁丑    6时33分      41      8       乙巳       6 卯时      闰十二月      正东
庚申      67      商橫涒灘      1  67      甲子   4  癸亥   37      164      辛丑    4时11分      46      16       庚戌       12 午时                正南
辛酉      68      昭陽作鄂      1  68      甲子   4  癸亥   31      512      乙未    13时4分      51      24       乙卯       18 酉时      闰九月      正西
壬戌      69      橫艾淹茂      1  69      甲子   4  癸亥   55      419      己未    10时41分      57      0       辛酉       0 子时                正北
癸亥      70      尚章大淵獻      1  70      甲子   4  癸亥   49      767      癸丑    19时34分      2      8       丙寅       6 卯时                正东
甲子      71      焉逢困敦      1  71      甲子   4  癸亥   44      175      戊申    4时28分      7      16       辛未       12 午时      闰五月      正南
乙丑      72      端蒙赤奮若      1  72      甲子   4  癸亥   8      82      壬申    2时5分      12      24       丙子       18 酉时                正西
丙寅      73      游兆攝提格      1  73      甲子   4  癸亥   2      430      丙寅    10时58分      18      0       壬午       0 子时                正北
丁卯      74      彊梧單閼      1  74      甲子   4  癸亥   56      778      庚申    19时51分      23      8       丁亥       6 卯时      闰二月      正东
戊辰      75      徒維執徐      1  75      甲子   4  癸亥   20      685      甲申    17时29分      28      16       壬辰       12 午时                正南
己巳      76      祝犁大荒落      1  76      甲子   4  癸亥   15      93      己卯    2时22分      33      24       丁酉       18 酉时      闰十月      正西
庚午      77      商橫敦牂      2  1      癸卯   5  癸卯   39      0      癸卯    0时0分      39      0       癸卯       0 子时                正北

今天的文章《历术甲子篇》冬至合朔表分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/59735.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注