新しく発言する  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 
   │  └!"続き" 荒田浩二 2008/01/20 11:58:05 

Re: !(続き)  返事を書く  ノートメニュー
荒田浩二 <knrztrhoel> 2008/01/20 11:58:05
!"続き"
SUB all_julius ! D)通年ユリウス年月日
LET pMJD=gMJD(jdy,jdm,jdd)
LET adjust=-30
LET adjust2=0.022
LET adjust3=-1.00273
LET jjdy=(pMJD+678914-jda+adjust)/365.25
IF jjdy<1 THEN LET jjdy=jjdy+adjust3
LET jjdy=INT(jjdy)
LET jjdm=(pMJD-INT(365.25*jjdy+jda)+678914)/30.59+2
IF jjdy<1 THEN LET jjdm=jjdm-12+adjust2
LET jjdm=INT(jjdm)
LET jjdd=pMJD-(INT(365.25*jjdy+jda)+INT(30.59*(jjdm-2))-678914)
IF jjdy<1 THEN LET jjdd=jjdd
IF jjdy=1 AND jMJD(jjdy,jjdm,jjdd)<>pMJD THEN
LET jjdy=-1
LET jjdm=14
LET jjdd=jjdd+27
END IF
IF jjdm>12 THEN
LET jjdy=jjdy+1
LET jjdm=jjdm-12
END IF
IF jjdy<=0 THEN LET jjdd=jjdd-366
IF jjdy=0 THEN LET jjdy=jjdy+1
CALL greg ! グレゴリオ暦の曜日閏年計算
PRINT " D) グレゴリオ暦";sy$;"年";sm$;"月";sd$;"日(";w$(weekcode(d));")をユリウス暦で表示"
PRINT USING " -########年##月##日(##) ":jjdy,jjdm,jjdd,w$(weekcode(d))
END SUB
SUB error_check ! エラーチェック
IF y<>INT(y) THEN CALL error(2)
IF y=0 THEN CALL error(2.5)
IF m<1 OR m>12 OR m<>INT(m) THEN CALL error(3)
IF d<1 OR (m<>2 AND d>md(m)) OR (m=2 AND d>29) OR d<>INT(d) THEN CALL error(4)
END SUB
SUB error(er) ! エラー処理
PRINT ymd0$
PRINT " ERROR !!"
PRINT
SELECT CASE er
CASE 1
PRINT "入力形式に誤りがあります。"
PRINT "半角で年月日の順に、間に区切り文字を1字入れて入力してください。"
PRINT "区切り文字は記号,英字,漢字等。空白でもかまいません。"
CASE 2
PRINT "年号の入力に誤りがあります。"
CASE 2.5
PRINT "西暦 0 年は存在しません。"
CASE 3
PRINT "月の入力に誤りがあります。"
CASE 4
PRINT "日付の入力に誤りがあります。"
END SELECT
PRINT
PRINT "正しい入力例 : 2006/3/17 ; 2006-03-17 ; 2006 3 17"
PRINT "正しい入力例 : 2006年3月17日 ; Y2006M03D17 ; '06.03.17"
PRINT "紀元前は負号を入力 : -42/11/28"
PRINT
PRINT " STOP !!"
STOP
END SUB
END
!** グレゴリオ暦 採用年 **
! 1582年10月15日 イタリア、スペイン、ポルトガル、ポーランド
! 1582年12月20日 フランス(1793年11月24日〜1805年12月31日はフランス共和暦)
! 1583年から1587年にかけ ドイツ、スイス、オランダのカトリック地域
! 1700年 3月 1日 ドイツ、オランダのプロテスタント地域
! 1752年 9月14日 イギリス
! 1783年 アメリカ
! 1873年(明治6年)1月1日 日本=明治5年12月2日(1872年12月31日)の翌日から
! 1875年 エジプト
! 1912年 中国
! 1918年 ソビエト
! 1924年 ギリシャ

   └紀元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
新規発言を反映させるにはブラウザの更新ボタンを押してください。