C  六曜                                                                   

            六曜とは    先勝 友引 先負 仏滅 大安 赤口

                                       4−2

六曜

先勝

友引

先負

仏滅

大安

赤口

 

        旧暦の何月1日で、これに六曜が月によって割り当てられる。

        閏月の場合も同じく、閏5月であれば 大安 である。

        旧暦の1日では 1月は先勝、2月は友引、3月は先負、4月は仏滅、

5月は大安、6月は赤口、7月は先勝、8月は友引、

9月は先負、10月は仏滅、11月は大安、12月は赤口

3-1 1月を見ると旧暦1日は先勝、2月は友引となる。

        次にプログラムの一部を示す。

'=======前頁のプログラムの最終行に続いている=======

DC = DCC              DCC は元日の旧暦日  MKは元日の旧暦の月の値が続いている。

                                             MKUは閏月がある場合その値が続いている。

For i = 1 To 12                         1月から 12月まで

    MM = i

    GoSub TUKINISSU                                   各月の日数を取得

    For j = 1 To DA                                    新暦の1日から末日まで

        DC = DC + 1                                  旧暦日の加算

          Grid1.Row = 3 + j: Grid1.Col = 8 + (i - 1) * 10: L8$ = Grid1.Text

        If InStr(L8$, "") Then DC = 1:

          MK = MK + 1:                                  朔には旧暦月の加算

        If MK > 12 Then MK = 1

        If MK = MKU And Uswich = 0 And i > 1 Then MK = MKU - 1: Uswich = 1

                  もしMKUの値と同じ月であれば、その月数を減じて前月と同じ閏月とする。

        If MK = 1 Or MK = 7 Then N0 = 1        1月・  7月 の1日  は 先勝  

        If MK = 2 Or MK = 8 Then N0 = 2        2月・  8月 の1日  は 友引  

        If MK = 3 Or MK = 9 Then N0 = 3        3月・  9月 の1日  は 先負  

        If MK = 4 Or MK = 10 Then N0 = 4       4月・10月 の1日  は 仏滅  

        If MK = 5 Or MK = 11 Then N0 = 5       5月・11月 の1日  は 大安  

        If MK = 6 Or MK = 12 Then N0 = 6       6月・12月 の1日  は 赤口  

        Q$ = Str$(MK): LQ = Len(Q$) - 1: Q$ = Right$(Q$, LQ)

        EN = (DC + N0 - 1) Mod 6: If EN = 0 Then EN = 6    

                 EN 日々の六曜番号  旧暦の2日以降は六陽番号順に繰り返し付ける.

        Grid1.Row = 3 + j: Grid1.Col = 5 + (i - 1) * 10: Grid1.Text = k3(EN)

        If DC = 1 Then

            Q$ = Str$(MK): LQ = Len(Q$) - 1

            Q$ = Right$(Q$, LQ) & "/朔"        旧暦欄の最上行の1日には Q/朔のように

            If MK = MKU - 1 And Uswich = 1 Then Q$ = "閏" & Q$

                                                       閏月ならば  閏Q/朔 のように

        ElseIf j = 1 Then

            Q$ = Str$(MK): LQ = Len(Q$) - 1

            Q$ = Right$(Q$, LQ) & "/"                新暦1日の旧暦欄には以下のように

            QQ$ = Str$(DC): LQ = Len(QQ$) ? 1        Q/D   ( Qは旧暦月 Dは旧暦日)

            QQ$ = Right$(QQ$, LQ)   : Q$ = Q$ & QQ$                             

            If MK = MKU - 1 And Uswich = 1 Then Q$ = "閏" & Q$  

                                                   もし閏月だったら  閏Q/D のように

        Else

            Q$ = Str$(DC): LQ = Len(Q$) - 1

            Q$ = Right$(Q$, LQ)                     通常は旧暦欄には旧暦の日のみを書く

        End If

        Grid1.Row = 3 + j: Grid1.Col = 9 + (i - 1) * 10: Grid1.Text = Q$

    Next j

Next i

Form1.MousePointer = 0                    画面のマウスポインターの砂時計を矢印にもどす

 

 

戻る