J  00.01.1019 [AUTO カレンダ―作成 祝有色有] 05.05.19 混 L=14641 C=0074 *v1.00 1991.03.15 KMUG公開  *v1.01 2000.01.16 Win版に変更  * 祝祭日開始日追加  *v1.02 2000.08.25 変数整理  *v1.03 2004.12.28 第三月曜祝日分  *v2.00 2005.05.18 HAPPY MONDAY 修正  * 昭和の日振替変更加  *v2.01 2005.05.20 中休日を祝から休へ  *v2.02 2005.05.20 日曜日の[休]を削除  *ファイル名 CALE2.MYX *使用ファイル CALE_HYO.MYX (CALE2.MYX と同時配布) *使用ペ―ジ S/1〜12 に結果作成 *使用変数 Z80,Z81,Z82,Z83,Z84,Z85,Z86,Z87,Z88,Z89,Z90,Z91,Z92,Z93, * Z94,Z95,Z96,Z97,Z98,Z99 V41,V42 *設定変更 SET:16:9 ( デフォルト 16:9 ) *仕事 カレンダ―作成(選択 1ヶ月分/1年分 年月指定可) *対応範囲 1900〜2150年、現在までの祝祭日(ハッピ―マンデ―を含む) * 天皇即位等、臨時の祝日・休日を除く。 *2002年11月24日 海の日と敬老の日 第三月曜日に変更された。 *2005年5月13日 祝日が日曜で、翌日が祝日の場合は、繰り越される。   DPOFF:SET:16:9:ESC: *色付可能列数 7  X:RFL:CALE_HYO.MYX:  DP:4::SV:  DPON:  *カレンダ―  Z0=0:ACCPNUM:作成するカレンダ―の年度は?[例 1991]:1900:2150::?:  IF Z0=0 THEN:STOP:ELSE:Z81=Z0:V41=Z81:ENDIF:  Z0=0:ACCPNUM:期間は?[1 or 実行…1年分 2…1月分]:1:2:1:?:  IF Z0=0 THEN:GOTO *カレンダ―:ELSE:Z91=Z0:ENDIF:  IF Z91=1 THEN:DPOFF:GOTO *年暦:ENDIF:  Z0=0:ACCPNUM:何月分を?[1〜12 実行のみ 1月]:1:12:1:?:  IF Z0=0 THEN:GOTO *カレンダ―:ELSE:Z82=Z0:ENDIF:  DPOFF:GOTO *月暦:  *年暦  FOR Z82=1 TO 12: *サブ書込み頁1―12  *月暦  CT:カレンダ― Z81.Z82:Z83=1:  IF Z82=2 THEN:Z81=Z81-1:Z84=13:Z83=Z83+31:ENDIF:*前年から指定年にかけて IF Z82=1 THEN:Z81=Z81-1:Z84=13:ENDIF: * 閏日算出準備 IF Z82>2 THEN:Z84=Z82:ENDIF:  Z85=1.25*Z81: *一応 4年毎に1日加算 Z86=Z81/100: *百年ごとの平年数を算出 Z87=Z81/400:Z81=V41: *4百年毎の閏年数を算出 R1=2.6*Z84+1.6:Z88=R1: *月初め準ユリウス日算出 Z89=Z85-Z86+Z87+Z88+Z83:Z90=Z89MOD7: *Z90 月初の曜日算出  *Z90 0 日 1 月 2 火 3 水 4 木 5 金 6 土 *Z93 月の最終B  IF Z82=4 OR Z82=6 OR Z82=9 OR Z82=11 THEN:Z93=30:  ELSE:IF Z82=2 THEN: *閏年計算  IF Z81MOD4=0 THEN:V0="閏":ELSE:V0="平":ENDIF:  IF Z81MOD100=0 AND Z81MOD400<>0 THEN:V0="平":ENDIF:  IF V0="平" THEN:Z93=28:ELSE:Z93=29:ENDIF:  ELSE:Z93=31:  ENDIF:ENDIF:   IF Z93=29 THEN:EL:26:29:ESC:  ELSE:IF Z93=30 THEN:EL:26:29:30:ESC:  ELSE:IF Z93=31 THEN:EL:26:29:30:31:ESC:  ENDIF:ENDIF:ENDIF:   Z80=0:  Z92=0: *Z92 彼岸日  Z94=0:Z95=0:Z96=0:Z97=0:Z98=0: *Z90 月初の曜  IF Z81<1948 THEN:GOTO *整形:ENDIF: *祝日設定開始   ON Z82 GOTO *1,*2,*3,*4,*5,*6,*7,*8,*9,*10,*11,*12: *Z95 色列   *1  IF Z81<1949 THEN:GOTO *整形:ENDIF:  [14,1]="祝 1":Z95=1: *元旦  IF Z81<2000 THEN:[20,1]="祝 15":Z95=1:ENDIF: *第Z80月曜日  Z80=2:GOTO *整形: *成人 第2月曜   *2  IF Z81<1967 THEN:GOTO *整形:ENDIF:  [17,4]="祝 11":Z95=4:GOTO *整形: *建国の日   *3  IF Z81<1949 THEN:GOTO *整形:ENDIF:  *彼岸算出  IF Z81>=1900 AND Z81=<1979 THEN: *春分算出  Z0=20.8357+0.242194*(Z81-1980)-INT[(Z81-1983)/4]:  ELSE:IF Z81>=1980 AND Z81=<2099 THEN:  Z0=20.8431+0.242194*(Z81-1980)-INT[(Z81-1980)/4]:  ELSE:IF Z81>=2100 AND Z81=<2150 THEN:  Z0=21.8510+0.242194*(Z81-1980)-INT[(Z81-1980)/4]:  ENDIF:ENDIF:ENDIF:  Z92=Z0:GOTO *彼岸:   *4 *1989以前 天皇誕生  IF Z81<1949 THEN:GOTO *整形:ENDIF:  [26,1]="祝 29":Z95=1:GOTO *整形: *みどりの日/昭和の日   *5  IF Z81<1949 THEN:GOTO *整形:ENDIF:  [14,3]="祝 3":[14,5]="祝 5":Z95=3:Z96=5: *憲法記念・子供の日  IF Z81<1986 THEN:GOTO *整形:ENDIF:  IF Z81>2005 THEN:[14,4]="祝 4":Z97=4: *5月4日 みどりの日  ELSE:[14,4]="休 4":Z97=4: *〜2005 間は休日  ENDIF:  GOTO *整形:   *6  GOTO *整形:   *7  IF Z81<1995 THEN:GOTO *整形:ENDIF: *1995/03 制定  IF Z81<2003 THEN:[20,6]="祝 20":Z95=6:ENDIF: *Z95 色指定  Z80=3:GOTO *整形: *海の日 第3月曜   *8  GOTO *整形:   *9  IF Z81<1965 THEN:GOTO *彼岸算出:ENDIF:  IF Z81<2003 THEN:[20,1]="祝 15":Z96=1:ENDIF: *敬老の日  Z80=3: *第3月曜   *彼岸算出  IF Z81>=1900 AND Z81=<1979 THEN: *秋分算出  Z0=23.2588+0.242194*(Z81-1980)-INT[(Z81-1983)/4]:  ELSE:IF Z81>=1980 AND Z81=<2099 THEN:  Z0=23.2488+0.242194*(Z81-1980)-INT[(Z81-1980)/4]:  ELSE:IF Z81>=2100 AND Z81=<2150 THEN:  Z0=24.2488+0.242194*(Z81-1980)-INT[(Z81-1980)/4]:  ENDIF:ENDIF:ENDIF:  IF Z81=1991 THEN:Z0=22:ENDIF: *この日だけ計算外  Z92=Z0:   *彼岸  IF Z92=20 THEN:[20,6]="祝 20":Z95=6: *3月と同じ記入方法  ELSE:IF Z92=21 THEN:[20,7]="祝 21":Z95=7:  ELSE:IF Z92=22 THEN:[23,1]="祝 22":Z95=1:  ELSE:IF Z92=23 THEN:[23,2]="祝 23":Z95=2:  ELSE:IF Z92=24 THEN:[23,3]="祝 24":Z95=3:  ENDIF:ENDIF:ENDIF:ENDIF:ENDIF:  GOTO *整形:   *10  IF Z81<1966 THEN:GOTO *整形:ENDIF:  IF Z81<2000 THEN:[17,3]="祝 10":Z95=3:ENDIF:  Z80=2:GOTO *整形: *体育 第2月曜   *11 *分化の日  [14,3]="祝 3":[23,2]="祝 23":Z95=3:Z96=2: *勤労感謝の日  GOTO *整形:   *12  IF Z81<1989 THEN:GOTO *整形:ENDIF: *1989 天皇交代  [23,2]="祝 23":Z95=2: *天皇誕生日  *整形 *7 項目行番号  IF Z90<>6 THEN:DL:(7+Z90)-12:ENDIF: *土曜始まり以外  IF Z90<>0 THEN:Z94=7-Z90+1: *7日-Z90+次列  ROC:Z94-T:2:Z94-T:2:Z94-T:2:ESC: *次週分下へ3行  MC:Z94-T:1:DL:6-(5+Z90): *先頭日ずらし  ELSE:Z94=7: *日曜始まり  ENDIF:  C1-{休 }=C1,C1="休*": *祝日間の例外  *ハッピ―マンデ― *2000/01 より開始  IF Z82=1 OR Z82=7 OR Z82=9 OR Z82=10 THEN:  IF Z80=0 THEN:GOTO *祝日・振替:ENDIF:  IF Z82=1 OR Z82=10 THEN:  IF Z81<2000 THEN:GOTO *祝日・振替:ENDIF:  ENDIF:  IF Z82=7 OR Z82=9 THEN:  IF Z81<2003 THEN:GOTO *祝日・振替:ENDIF:  ENDIF:  Z98=0:  FOR Z99=8 TO T1 STEP 3: *祝日の月曜日に+祝  STR[MZ99,@MON]=V0: *Z99 調査行  IF V0="" THEN:CONTINUE:ENDIF:  Z98=Z98+1: *Z98 月曜日該当行  IF Z98=Z80 THEN: *Z80 弟Z80月曜日  V42=V0: *V42 第Z80月曜の日  V0="祝 "+V0:(V0)=M(Z99,@MON):Z80=0:  Z0=V42:  Z96=2-(7-Z94+1): *Z96 色列ROC前  IF Z96=<0 THEN:Z96=Z96+7:ENDIF:  IF Z92-Z0=2 THEN: *祝日に挟まれた日  V0=[Z99,3]:[Z99,3]="休 "+V0: *国民の休日  Z97=3-(7-Z94+1): *Z97 色列(ROC前の列)  IF Z97=<0 THEN:Z97=Z97+7:ENDIF:  ENDIF:  BREAK:  ENDIF:  NEXT Z98:  ENDIF:  *祝日・振替  Z98=0:  ML:(T1+Z82+1):4:DL:(T+2)-(T+12):D: *月名行の移動  IF Z82=6 OR Z82=8 THEN:GOTO *土日:ENDIF: *無祝日の月  IF Z81>=1973 THEN:  IF Z81>2005 AND Z97>0 THEN: *Z97 1ヶ月3祝日  IF Z82=5 OR Z82=9 THEN: *振替休日祝日飛ばし  IF Z90=4 OR Z90=5 THEN: *月初め木曜か金曜  IF Z90=5 THEN:{替 }+C4=C4,C3="祝*":Z98=4:  ELSE:{替 }+C3=C3,C2="祝*":Z98=3:  ENDIF:  GOTO *色づけ:  ENDIF:  ENDIF:  ENDIF:  {替 }+C2=C2,C1="祝*": *振替休日  ENDIF:  *色づけ  SHU::C2=替*,祝*::Y:2#:5:0::  IF Z90<>0 THEN:Z94=7-Z94+1:ENDIF: *Z94 ROL 後の列に変更  IF Z95>0 THEN:Z95=Z94+Z95:IF Z95>7 THEN:Z95=Z95-7:ENDIF:  SHU::CZ95=祝*,休*::Y:Z95#:5:0::ENDIF:  IF Z96>0 THEN:Z96=Z94+Z96:IF Z96>7 THEN:Z96=Z96-7:ENDIF:  SHU::CZ96=祝*,休*::Y:Z96#:5:0::ENDIF:  IF Z97>0 THEN:Z97=Z94+Z97:IF Z97>7 THEN:Z97=Z97-7:ENDIF:  SHU::CZ97=祝*,休*::Y:Z97#:5:0::ENDIF:  IF Z98>0 THEN:  SHU::CZ98=祝*,替*::Y:Z98#:5:0::ENDIF: *振替による休日(2005〜 *土日  SHU::C7<>祝*::Y:7#:3:0:: *土曜水色  SHU:::Y:1#:5:0:: *日曜紫   W:S/Z82:DPON: *S1―12 書込  IF Z91=2 THEN:GOTO *終了:ENDIF: *月暦  DPOFF:RVON:RV:SV:RVOFF:  NEXT Z82:  *終了  DPON:  IF Z91=1 THEN:  TS:ESC:  ACCP:S/1ペ―ジから保管しました :?:  ENDIF:  STOP:   オ―ト基準 備忘録   後で、本来の計算方法が判るようにする。(CALE等を使わない。)  適当な日付からの計算でなく、準ユリウス日を使用しての計算をする。  閏年も、お彼岸も、判ってる範囲で、ちゃんと計算する。   対応は、1900年 から 2150年。  根拠は、暦便利帳に、その範囲の春分・秋分の計算方法が載ってたから。  従って、祝日、振替、その設定日、が関係する。  でも、制定日は判っても開始日が判らない???   文字は、全角。   2005年05月13日の変更やミスを教えて下さったGomiさんに感謝!  [祝祭日リスト] 総理府( 03-3581-2361 )に問い合わせ   制 定 日 祝 祭 日 名 称 施行 日 付 初 回 変更   19480720 ( 昭和23 ) 元日 即日 01月01日 19490101  19480720 ( 昭和23 ) 成人の日 即日 01月15日 19490115  19480720 ( 昭和23 ) 春分の日 即日 03月20日 19490320  19480720 ( 昭和23 ) 昭和天皇誕生日 即日 04月29日 19490429  19480720 ( 昭和23 ) 憲法記念日 即日 05月03日 19490503  19480720 ( 昭和23 ) こどもの日 即日 05月05日 19490505  19480720 ( 昭和23 ) 秋分の日 即日 09月23日 19480923  19480720 ( 昭和23 ) 文化の日 即日 11月03日 19481103  19480720 ( 昭和23 ) 勤労感謝の日 即日 11月23日 19481123  19660625 ( 昭和41 ) 建国の日 即日 02月11日 19670211  19660625 ( 昭和41 ) 敬老の日 即日 09月15日 19660915  19660625 ( 昭和41 ) 体育の日 即日 10月10日 19661010  19730412 ( 昭和48 ) 祝日振替え休日 即日 19730429  19851227 ( 昭和60 ) 祝日に挟まれた日 即日 05月04日 19860504  19890217 ( 平成元 ) みどりの日 即日 04月29日 19890429 名称  19890217 ( 平成元 ) 天皇誕生日 即日 12月23日 19891223  19950308 ( 平成07 ) 海の日 950101 07月20日 19960720  19981021 ( 平成10 ) 成人の日 000101 01月第2月曜 20000110 日付  19981021 ( 平成10 ) 体育の日 000101 10月第2月曜 20001011 日付  20021124( 平成14 )海の日 030101 07月第3月曜 20030721 日付  20021124( 平成14 )敬老の日 030101 09月第3月曜 20030915 日付  20050513( 平成17 )昭和の日 04月29日 20060429 名称  20050513( 平成17 )みどりの日 05月04日 20060504 名称  20050513( 平成17 )振替休日 祝日以降 2006? 様式   DynaBookSS3380 Pen2/400 ※ 飛流II Cele300A 10BASE-T  WinMT1.13 & NifTerm1.70D on Win98 きょうこ@横浜