《歷術甲子篇》冬至合朔表

《歷術甲子篇》所用爲四分曆,歲實365又1/4,朔策29又499/940,亦爲實際的殷歷(建寅爲正)。

殷歷創制於公元前427年(週考王十四年),沿用至公元前105年(漢武帝元封六年,次年改歷),即本表可以用於參照史料的適用範圍。

公元前427年,是年實際天象日月合朔與冬至同日同時,在子時正,位在牽牛初度。符合四分曆的蔀首,干支爲己酉。由此用四分法,反推以蔀首爲甲子的時日作爲曆元,即需要反推15蔀共1140年(BC1167年作爲曆元)。

#設某年的上一年十一月冬至合朔,干支爲甲子,日月在牛宿初度(即十一月甲子夜半朔旦冬至,日月俱起於牽牛之初)
tiangan = ["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]
dizhi = ["子","醜","寅","卯","辰","巳","午","未","申","酉","戌","亥"]
ganzhi =['']*60
for i in range(60):
	ganzhi[i] = tiangan[i%10]+dizhi[(i)%12]
direction = ['正東','正南','正西','正北']
suiyang = ["焉逢","端蒙","遊兆","彊梧","徒維","祝犁","商橫","昭陽","橫艾","尚章"]
suiyin = ["困敦","赤奮若","攝提格","單閼","執徐","大荒落","敦牂","協洽","涒灘","作鄂","淹茂","大淵獻"]
lsjzp = open("歷術甲子篇.csv",'w')
#基本常數
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冬至時刻",' 月',"\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)
    chen_s = int(((chen - chen_h) * 60 - int((chen - chen_h) * 60)) * 60)
    hssj = str(chen_h)+'時'+str(chen_m)+'分'+str(chen_s)+'秒'
    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
    month = ''
    if ry >=19:
        yry = (ry-7)*12
        for j in range(12):
            yry += 7
            if yry >=228:
                month= '閏' + yuefen[(j - 2+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] #輸出章首名
    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,sdxy_0,
          ganzhi[sddy_0], heshuo(sdxy_0, 940),dzdy_0,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(ce,'\t ',i+1,'\t',suiyang[i%10]+suiyin[(i+2)%12],'\t',i//1520+1,' ',(i//76+1)%20, '',' ',i%76+1,bu,' ',i//19+1,'',zhang,' ',tiangan[i%10]+dizhi[(i+2)%12],'  ',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       甲子      0 子時            正北
乙卯      2      端蒙單閼      1  甲子   2   1  甲子   54      348      戊午   8時53分6秒      5      8       己巳      6 卯時            正東
丙辰      3      遊兆執徐      1  甲子   3   1  甲子   48      696      壬子   17時46分12秒      10      16       甲戌      12 午時      閏6月      正南
丁巳      4      彊梧大荒落      1  甲子   4   1  甲子   12      603      丙子   15時23分44秒      15      24       己卯      18 酉時            正西
戊午      5      徒維敦牂      1  甲子   5   1  甲子   7      11      辛未   0時16分51秒      21      0       乙酉      0 子時            正北
己未      6      祝犁協洽      1  甲子   6   1  甲子   1      359      乙丑   9時9分57秒      26      8       庚寅      6 卯時      閏3月      正東
庚申      7      商橫涒灘      1  甲子   7   1  甲子   25      266      己丑   6時47分29秒      31      16       乙未      12 午時            正南
辛酉      8      昭陽作鄂      1  甲子   8   1  甲子   19      614      癸未   15時40分35秒      36      24       庚子      18 酉時            正西
壬戌      9      橫艾淹茂      1  甲子   9   1  甲子   14      22      戊寅   0時33分42秒      42      0       丙午      0 子時      閏11月      正北
癸亥      10      尚章大淵獻      1  甲子   10   1  甲子   37      869      辛丑   22時11分14秒      47      8       辛亥      6 卯時            正東
甲子      11      焉逢困敦      1  甲子   11   1  甲子   32      277      丙申   7時4分20秒      52      16       丙辰      12 午時      閏8月      正南
乙丑      12      端蒙赤奮若      1  甲子   12   1  甲子   56      184      庚申   4時41分52秒      57      24       辛酉      18 酉時            正西
丙寅      13      遊兆攝提格      1  甲子   13   1  甲子   50      532      甲寅   13時34分58秒      3      0       丁卯      0 子時            正北
丁卯      14      彊梧單閼      1  甲子   14   1  甲子   44      880      戊申   22時28分5秒      8      8       壬申      6 卯時      閏4月      正東
戊辰      15      徒維執徐      1  甲子   15   1  甲子   8      787      壬申   20時5分37秒      13      16       丁丑      12 午時            正南
己巳      16      祝犁大荒落      1  甲子   16   1  甲子   3      195      丁卯   4時58分43秒      18      24       壬午      18 酉時            正西
庚午      17      商橫敦牂      1  甲子   17   1  甲子   57      543      辛酉   13時51分49秒      24      0       戊子      0 子時      閏1月      正北
辛未      18      昭陽協洽      1  甲子   18   1  甲子   21      450      乙酉   11時29分21秒      29      8       癸巳      6 卯時            正東
壬申      19      橫艾涒灘      1  甲子   19   1  甲子   15      798      己卯   20時22分28秒      34      16       戊戌      12 午時      閏9月      正南
癸酉      20      尚章作鄂      1  甲子   20   2  癸卯   39      705      癸卯   18時0分0秒      39      24       癸卯      18 酉時            正西
甲戌      21      焉逢淹茂      1  甲子   21   2  癸卯   34      113      戊戌   2時53分6秒      45      0       己酉      0 子時            正北
乙亥      22      端蒙大淵獻      1  甲子   22   2  癸卯   28      461      壬辰   11時46分12秒      50      8       甲寅      6 卯時      閏6月      正東
丙子      23      遊兆困敦      1  甲子   23   2  癸卯   52      368      丙辰   9時23分44秒      55      16       己未      12 午時            正南
丁丑      24      彊梧赤奮若      1  甲子   24   2  癸卯   46      716      庚戌   18時16分51秒      0      24       甲子      18 酉時            正西
戊寅      25      徒維攝提格      1  甲子   25   2  癸卯   41      124      乙巳   3時9分57秒      6      0       庚午      0 子時      閏3月      正北
己卯      26      祝犁單閼      1  甲子   26   2  癸卯   5      31      己巳   0時47分29秒      11      8       乙亥      6 卯時            正東
庚辰      27      商橫執徐      1  甲子   27   2  癸卯   59      379      癸亥   9時40分35秒      16      16       庚辰      12 午時            正南
辛巳      28      昭陽大荒落      1  甲子   28   2  癸卯   53      727      丁巳   18時33分42秒      21      24       乙酉      18 酉時      閏11月      正西
壬午      29      橫艾敦牂      1  甲子   29   2  癸卯   17      634      辛巳   16時11分14秒      27      0       辛卯      0 子時            正北
癸未      30      尚章協洽      1  甲子   30   2  癸卯   12      42      丙子   1時4分20秒      32      8       丙申      6 卯時      閏8月      正東
甲申      31      焉逢涒灘      1  甲子   31   2  癸卯   35      889      己亥   22時41分52秒      37      16       辛丑      12 午時            正南
乙酉      32      端蒙作鄂      1  甲子   32   2  癸卯   30      297      甲午   7時34分58秒      42      24       丙午      18 酉時            正西
丙戌      33      遊兆淹茂      1  甲子   33   2  癸卯   24      645      戊子   16時28分5秒      48      0       壬子      0 子時      閏4月      正北
丁亥      34      彊梧大淵獻      1  甲子   34   2  癸卯   48      552      壬子   14時5分37秒      53      8       丁巳      6 卯時            正東
戊子      35      徒維困敦      1  甲子   35   2  癸卯   42      900      丙午   22時58分43秒      58      16       壬戌      12 午時            正南
己丑      36      祝犁赤奮若      1  甲子   36   2  癸卯   37      308      辛丑   7時51分49秒      3      24       丁卯      18 酉時      閏1月      正西
庚寅      37      商橫攝提格      1  甲子   37   2  癸卯   1      215      乙丑   5時29分21秒      9      0       癸酉      0 子時            正北
辛卯      38      昭陽單閼      1  甲子   38   2  癸卯   55      563      己未   14時22分28秒      14      8       戊寅      6 卯時      閏9月      正東
壬辰      39      橫艾執徐      1  甲子   39   3  癸未   19      470      癸未   12時0分0秒      19      16       癸未      12 午時            正南
癸巳      40      尚章大荒落      1  甲子   40   3  癸未   13      818      丁丑   20時53分6秒      24      24       戊子      18 酉時            正西
甲午      41      焉逢敦牂      1  甲子   41   3  癸未   8      226      壬申   5時46分12秒      30      0       甲午      0 子時      閏6月      正北
乙未      42      端蒙協洽      1  甲子   42   3  癸未   32      133      丙申   3時23分44秒      35      8       己亥      6 卯時            正東
丙申      43      遊兆涒灘      1  甲子   43   3  癸未   26      481      庚寅   12時16分51秒      40      16       甲辰      12 午時            正南
丁酉      44      彊梧作鄂      1  甲子   44   3  癸未   20      829      甲申   21時9分57秒      45      24       己酉      18 酉時      閏3月      正西
戊戌      45      徒維淹茂      1  甲子   45   3  癸未   44      736      戊申   18時47分29秒      51      0       乙卯      0 子時            正北
己亥      46      祝犁大淵獻      1  甲子   46   3  癸未   39      144      癸卯   3時40分35秒      56      8       庚申      6 卯時            正東
庚子      47      商橫困敦      1  甲子   47   3  癸未   33      492      丁酉   12時33分42秒      1      16       乙丑      12 午時      閏11月      正南
辛丑      48      昭陽赤奮若      1  甲子   48   3  癸未   57      399      辛酉   10時11分14秒      6      24       庚午      18 酉時            正西
壬寅      49      橫艾攝提格      1  甲子   49   3  癸未   51      747      乙卯   19時4分20秒      12      0       丙子      0 子時      閏8月      正北
癸卯      50      尚章單閼      1  甲子   50   3  癸未   15      654      己卯   16時41分52秒      17      8       辛巳      6 卯時            正東
甲辰      51      焉逢執徐      1  甲子   51   3  癸未   10      62      甲戌   1時34分58秒      22      16       丙戌      12 午時            正南
乙巳      52      端蒙大荒落      1  甲子   52   3  癸未   4      410      戊辰   10時28分5秒      27      24       辛卯      18 酉時      閏4月      正西
丙午      53      遊兆敦牂      1  甲子   53   3  癸未   28      317      壬辰   8時5分37秒      33      0       丁酉      0 子時            正北
丁未      54      彊梧協洽      1  甲子   54   3  癸未   22      665      丙戌   16時58分43秒      38      8       壬寅      6 卯時            正東
戊申      55      徒維涒灘      1  甲子   55   3  癸未   17      73      辛巳   1時51分49秒      43      16       丁未      12 午時      閏1月      正南
己酉      56      祝犁作鄂      1  甲子   56   3  癸未   40      920      甲辰   23時29分21秒      48      24       壬子      18 酉時            正西
庚戌      57      商橫淹茂      1  甲子   57   3  癸未   35      328      己亥   8時22分28秒      54      0       戊午      0 子時      閏9月      正北
辛亥      58      昭陽大淵獻      1  甲子   58   4  癸亥   59      235      癸亥   6時0分0秒      59      8       癸亥      6 卯時            正東
壬子      59      橫艾困敦      1  甲子   59   4  癸亥   53      583      丁巳   14時53分6秒      4      16       戊辰      12 午時            正南
癸丑      60      尚章赤奮若      1  甲子   60   4  癸亥   47      931      辛亥   23時46分12秒      9      24       癸酉      18 酉時      閏6月      正西
甲寅      61      焉逢攝提格      1  甲子   61   4  癸亥   11      838      乙亥   21時23分44秒      15      0       己卯      0 子時            正北
乙卯      62      端蒙單閼      1  甲子   62   4  癸亥   6      246      庚午   6時16分51秒      20      8       甲申      6 卯時            正東
丙辰      63      遊兆執徐      1  甲子   63   4  癸亥   0      594      甲子   15時9分57秒      25      16       己丑      12 午時      閏3月      正南
丁巳      64      彊梧大荒落      1  甲子   64   4  癸亥   24      501      戊子   12時47分29秒      30      24       甲午      18 酉時            正西
戊午      65      徒維敦牂      1  甲子   65   4  癸亥   18      849      壬午   21時40分35秒      36      0       庚子      0 子時            正北
己未      66      祝犁協洽      1  甲子   66   4  癸亥   13      257      丁丑   6時33分42秒      41      8       乙巳      6 卯時      閏11月      正東
庚申      67      商橫涒灘      1  甲子   67   4  癸亥   37      164      辛丑   4時11分14秒      46      16       庚戌      12 午時            正南
辛酉      68      昭陽作鄂      1  甲子   68   4  癸亥   31      512      乙未   13時4分20秒      51      24       乙卯      18 酉時      閏8月      正西
壬戌      69      橫艾淹茂      1  甲子   69   4  癸亥   55      419      己未   10時41分52秒      57      0       辛酉      0 子時            正北
癸亥      70      尚章大淵獻      1  甲子   70   4  癸亥   49      767      癸丑   19時34分58秒      2      8       丙寅      6 卯時            正東
甲子      71      焉逢困敦      1  甲子   71   4  癸亥   44      175      戊申   4時28分5秒      7      16       辛未      12 午時      閏4月      正南
乙丑      72      端蒙赤奮若      1  甲子   72   4  癸亥   8      82      壬申   2時5分37秒      12      24       丙子      18 酉時            正西
丙寅      73      遊兆攝提格      1  甲子   73   4  癸亥   2      430      丙寅   10時58分43秒      18      0       壬午      0 子時            正北
丁卯      74      彊梧單閼      1  甲子   74   4  癸亥   56      778      庚申   19時51分49秒      23      8       丁亥      6 卯時      閏1月      正東
戊辰      75      徒維執徐      1  甲子   75   4  癸亥   20      685      甲申   17時29分21秒      28      16       壬辰      12 午時            正南
己巳      76      祝犁大荒落      1  甲子   76   4  癸亥   15      93      己卯   2時22分28秒      33      24       丁酉      18 酉時      閏9月      正西
庚午      77      商橫敦牂      2  癸卯   1   1  癸卯   39      0      癸卯   0時0分0秒      39      0       癸卯      0 子時            正北

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章