C 六曜
六曜とは 先勝 友引 先負 仏滅 大安 赤口
六 曜 の 番 号
表 4−2
|
番 |
1 |
2 |
3 |
4 |
5 |
6 |
|
六曜 |
先勝 |
友引 |
先負 |
仏滅 |
大安 |
赤口 |
旧暦の何月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
画面のマウスポインターの砂時計を矢印にもどす