新しく発言する  EXIT  インデックスへ
干支(えと)の計算

  干支(えと)  の計算 SECOND 2008/01/12 02:18:50  (修正1回)
  !干支(えと)の計算4※こちらの「空打ち」は... SECOND 2008/01/12 15:43:11  (修正4回)
  テキストWindowを起動時に、位置と、大きさ... SECOND 2008/01/12 16:18:03 
  │└WINHANDLE関数を使うとWin32APIに渡すための... 白石 和夫 2008/01/12 18:31:28 
  │ └すみません、トップページも見るようにしま... SECOND 2008/01/12 20:15:11 
  !広範囲B.C.4713(-4712)~2400~のユリウス日... SECOND 2008/01/13 14:35:13  (修正3回)
  │└!続く SECOND 2008/01/13 14:36:31  (修正2回)
  │ └ユリウス日とは、何か。 SECOND 2008/01/14 06:45:15 
  グレゴリオ暦とユリウス暦の両方を表示でき... 荒田浩二 2008/01/20 11:40:55 
   ├!<続き> 荒田浩二 2008/01/20 11:44:36 
   │└![続き] 荒田浩二 2008/01/20 11:52:14 
   │ └!(続き) 荒田浩二 2008/01/20 11:56:51 

Re: ![続き]  返事を書く  ノートメニュー
荒田浩二 <knrztrhoel> 2008/01/20 11:56:51
!(続き)
SUB today ! A)本日との日数差
LET ttd$=DATE$ ! tAJD = 今日のユリウス通日
LET ty=VAL(ttd$(1:4))
LET tm=VAL(ttd$(5:6))
LET td=VAL(ttd$(7:8))
IF tm=1 OR tm=2 THEN
LET ty=ty-1
LET tm=tm+12
END IF
LET tAJD=INT(365.25*ty)+INT(ty/400)-INT(ty/100)+INT(30.59*(tm-2))+td-678912+2400000.5
IF AJD-tAJD>=0 THEN
PRINT USING " A) 今日(####/##/##)から ######### 日後":ttd$(1:4),ttd$(5:6),ttd$(7:8),AJD-tAJD
ELSE
PRINT USING " A) 今日(####/##/##)から ######### 日前":ttd$(1:4),ttd$(5:6),ttd$(7:8),tAJD-AJD
END IF
PRINT
END SUB
SUB eto ! B)干支
MAT READ 十干$,十干かな$,十二支$,十二支かな$
DATA 甲,乙,丙,丁,戊,己,庚,辛,壬,癸
DATA きのえ,きのと,ひのえ,ひのと,つちのえ,つちのと,かのえ,かのと,みずのえ,みずのと
DATA 子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥
DATA ね,うし,とら,う,たつ,み,うま,ひつじ,さる,とり,いぬ,い
LET y10a=6
IF y<0 THEN LET y10a=7
LET y十干code=MOD(y+y10a,10)
LET y12a=8
IF y<0 THEN LET y12a=9
LET y十二支code=MOD(y+y12a,12)
LET 十干code=MOD(AJD+9.5,10)
LET 十二支code=MOD(AJD+1.5,12)
LET jdweekcode=MOD(AJD+1.5,7) ! ユリウス通日から曜日を算出
PRINT " B) ユリウス通日から算出した干支と曜日"
PRINT TAB(4);十干$(y十干code);十二支$(y十二支code);
PRINT "(";十干かな$(y十干code);十二支かな$(y十二支code);")年;";
PRINT 十干$(十干code);十二支$(十二支code);
PRINT "(";十干かな$(十干code);十二支かな$(十二支code);")日:";
PRINT w$(jdweekcode);"曜日"
PRINT
END SUB
SUB all_greg ! C)通年グレゴリオ年月日
LET pMJD=jMJD(jdy,jdm,jdd)
LET gjdy=(pMJD+678912-30)/365.25 ! 調整値;-30
LET gjdy=INT(gjdy+(-INT(gjdy/400)+INT(gjdy/100))/365.25)
LET gjdm=INT((pMJD-(INT(365.25*gjdy)+INT(gjdy/400)-INT(gjdy/100)-678912))/30.59+2)
LET gjdd=pMJD-(INT(365.25*gjdy)+INT(gjdy/400)-INT(gjdy/100)+INT(30.59*(gjdm-2))-678912)
IF gjdm=2 AND gjdd=30 THEN
LET gjdy=gjdy-1
LET gjdm=14
LET gjdd=29
END IF
IF (gjdy+1)/100=INT((gjdy+1)/100) AND (gjdy+1)/400<>INT((gjdy+1)/400) AND gjdm=14 AND gjdd=29 THEN
LET gjdy=gjdy+1
LET gjdm=3
LET gjdd=1
END IF
IF gjdm>12 THEN
LET gjdy=gjdy+1
LET gjdm=gjdm-12
END IF
LET y1w=weekcirc(MOD(y+15,7*4))
PRINT " C) ユリウス暦";sy$;"年";sm$;"月";sd$;"日(";w$(weekcode(d));")をグレゴリオ暦で表示"
PRINT USING " -########年##月##日(##)":gjdy,gjdm,gjdd,w$(weekcode(d));
PRINT " === 現行のカレンダーでの位置"
PRINT
END SUB
!"続く"

   │  └!"続き" 荒田浩二 2008/01/20 11:58:05 
   └紀元0年については、理科年表の「ユリウス... SECOND 2008/01/20 15:50:59  (修正6回)
    └続く SECOND 2008/01/21 16:02:27 
     └天文関係では紀元0年を設定しているとは不明... 荒田浩二 2008/01/23 20:25:33 
      └私も、初めてお聞きする事で、できれば・・... SECOND 2008/01/24 05:50:01  (修正1回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。