やってみたかったこと、複数月を表示する、を導入しました。 ホームページにて、これの1段階前のバージョン(ver.1.081)も公開しています。 ともに、ランタイムを含んでいますので、800Kbを超えてますが・・・。そのうちランタイムなしも公開したいと思います。 あと、このプログラムも、もう少し簡素化したいと思っています。
--- ここより最後まで --- {---プログラム掲示板投稿フォーム--- 【ソフト名】Y'sカレンダー (バージョン 1.1) 【作 成 者】Yosshy (連絡先:yosshy4@m21.alpha-net.ne.jp) 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.51 【転 載】可(転載条件:作者にメールで連絡すること) 【改変運用】可 【ひまわり本体への梱包】可 【実行時に利用作成するファイル】無 【コメント】今までのを元に作り直しました。 今回の目玉は、何といっても、表示月数を変更できること、でしょう。 もともとこれを考えていたのですから。 ---投稿フォームここまで---} *タイトル 母艦の、タイトルは、「Y'sカレンダー」 母艦の、幅は、180 母艦の、高さは、180 今月=LEFT(今日,8)&「01」。 色0=黒色。'平日 色1=赤色。'休日 色2=青色。'土曜日 色3=赤色。'祝日 色4=緑色。'今日の枠 週=「日,月,火,水,木,金,土」。 今日表示=1。 表示月数=「1ヶ月」。 SW=0。SH=0。
*メニュー 設定メニューを、メニュー作成。 その、テキストは、「&Control」。 設定メニューに、年月変更メニューを、メニュー追加。 その、テキストは、「年月変更」。 年月変更メニューに、任意月メニューを、メニュー追加。 その、テキストは、「任意月」。その、ショートカットキーは、「Ctrl+A」。 その、イベントは( *任意月 ダイアログ初期値=LEFT(今月,7)。 「表示年月は(例:2002/07)」と、尋ねる。 もし、それ=「」ならば、待機。 今月=それ&「/01」。 画面クリア。 メインへ、飛ぶ。 ) 年月変更メニューに、今月メニューを、メニュー追加。 その、テキストは、「今月」。その、ショートカットキーは、「Ctrl+N」。 その、イベントは( *現在月 今月=LEFT(今日,8)&「01」。 画面クリア。 メインへ、飛ぶ。 ) 年月変更メニューに、区切り線1を、メニュー追加。 その、テキストは、「-」。 年月変更メニューに、来月メニューを、メニュー追加。 その、テキストは、「来月」。その、ショートカットキーは、「Ctrl+M」。 その、イベントは( *来月 今月=日付加算(今月,「0/1/0」)。 画面クリア。 メインへ、飛ぶ。 ) 年月変更メニューに、前月メニューを、メニュー追加。 その、テキストは、「前月」。その、ショートカットキーは、「Ctrl+B」。 その、イベントは( *前月 今月=日付加算(今月,「-0/1/0」)。 画面クリア。 メインへ、飛ぶ。 ) 年月変更メニューに、区切り線2を、メニュー追加。 その、テキストは、「-」。 年月変更メニューに、来年メニューを、メニュー追加。 その、テキストは、「来年」。その、ショートカットキーは、「Ctrl+K」。 その、イベントは( *来年 今月=日付加算(今月,「1/0/0」)。 画面クリア。 メインへ、飛ぶ。 ) 年月変更メニューに、前年メニューを、メニュー追加。 その、テキストは、「前年」。その、ショートカットキーは、「Ctrl+G」。 その、イベントは( *前年 今月=日付加算(今月,「-1/0/0」)。 画面クリア。 メインへ、飛ぶ。 ) 設定メニューに、区切り線3を、メニュー追加。 その、テキストは、「-」。 設定メニューに、色設定メニューを、メニュー追加。 その、テキストは、「色設定」。その、ショートカットキーは、「Ctrl+C」。 その、イベントは( *色色設定 ダイアログキャンセルの値=色0。 ダイアログ初期値=色0。 「平日の色を選んでください\n(変更しない場合はそのままOKかキャンセル)」を、「黒色|赤色|青色|緑色|紫色|茶色|オレンジ色|灰色|水色|黄色」の、リストから選択。 選択した色=それ。 色設定を、呼ぶ。 色0=選択した色。 ダイアログキャンセルの値=色1。 ダイアログ初期値=色1。 「日曜休日(祝日除く)の色を選んでください\n(変更しない場合はそのままOKかキャンセル)」を、「黒色|赤色|青色|緑色|紫色|茶色|オレンジ色|灰色|水色|黄色」の、リストから選択。 選択した色=それ。 色設定を、呼ぶ。 色1=選択した色。 ダイアログキャンセルの値=色2。 ダイアログ初期値=色2。 「土曜日の色を選んでください\n(変更しない場合はそのままOKかキャンセル)」を、「黒色|赤色|青色|緑色|紫色|茶色|オレンジ色|灰色|水色|黄色」の、リストから選択。 選択した色=それ。 色設定を、呼ぶ。 色2=選択した色。 ダイアログキャンセルの値=色3。 ダイアログ初期値=色3。 「祝日の色を選んでください\n(変更しない場合はそのままOKかキャンセル)」を、「黒色|赤色|青色|緑色|紫色|茶色|オレンジ色|灰色|水色|黄色」の、リストから選択。 選択した色=それ。 色設定を、呼ぶ。 色3=選択した色。 「今日の所に枠を付けますか」と、二択。 もし、それが、はいならば、今日表示=1。 もし、それが、いいえならば、今日表示=0。 もし、今日表示=1ならば、( ダイアログキャンセルの値=色4。 ダイアログ初期値=色4。 「今日の枠の色を選んでください\n(変更しない場合はそのままOKかキャンセル)」を、「黒色|赤色|青色|緑色|紫色|茶色|オレンジ色|灰色|水色|黄色」の、リストから選択。 選択した色=それ。 色設定を、呼ぶ。 色4=選択した色。 ) 画面クリア。 メインへ、飛ぶ。 ) 設定メニューに、曜日表示メニューを、メニュー追加。 その、テキストは、「曜日表示」。その、ショートカットキーは、「Ctrl+Y」。 その、イベントは( *曜日設定 ダイアログキャンセルの値=週。 ダイアログ初期値=週。 「曜日の表示を選んでください\n(変更しない場合はそのままOKかキャンセル)」を、「日,月,火,水,木,金,土|S,M,T,W,T,F,S|Sun,Mon,Tue,Wed,Thu,Fri,Sat|D,L,M,M,J,V,S|Dim,Lun,Mar,Mer,Jeu,Ven,Sam|S,M,D,M,D,F,S|Son,Mon,Die,Mit,Don,Fre,Sam|休,平,平,平,平,平,休|復,元,懸,中,疲,倒,休」の、リストから選択。 週=それ。 画面クリア。 メインへ、飛ぶ。 ) 設定メニューに、表示月数メニューを、メニュー追加。 その、テキストは、「月数設定」。その、ショートカットキーは、「Ctrl+L」。 その、イベントは( *月数設定 ダイアログキャンセルの値=表示月数。 ダイアログ初期値=表示月数。 「表示する月数を選んでください\n(変更しない場合はそのままOKかキャンセル)」を、「1ヶ月|2ヶ月(前月)|2ヶ月(来月)|3ヶ月(前後)|3ヶ月(来月)|6ヶ月(前後)|6ヶ月(来月)|12ヶ月|年間表示|年度表示」の、リストから選択。 表示月数=それ。 画面クリア。 メインへ、飛ぶ。 ) 設定メニューに、区切り線4を、メニュー追加。 その、テキストは、「-」。 設定メニューに、印刷メニューを、メニュー追加。 その、テキストは、「印刷」。その、ショートカットキーは、「Ctrl+P」。 その、イベントは( *プリント 母艦印刷。 ) 設定メニューに、区切り線5を、メニュー追加。 その、テキストは、「-」。 設定メニューに、終了メニューを、メニュー追加。 その、テキストは、「終了」。その、ショートカットキーは、「Alt+X」。 その、イベントは( *ENDE 「終了します」と、言う。 終わり。 )
*メイン 全体表示を、呼ぶ。 文字色=黒色。 母艦の、キー押した時は、キーコントロール。 待機。
*全体表示 表示月数で、条件分岐。 「1ヶ月」の時、(1ヶ月表示を、呼ぶ)。 「2ヶ月(前月)」の時、(2ヶ月表示Aを、呼ぶ)。 「2ヶ月(来月)」の時、(2ヶ月表示Bを、呼ぶ)。 「3ヶ月(前後)」の時、(3ヶ月表示Aを、呼ぶ)。 「3ヶ月(来月)」の時、(3ヶ月表示Bを、呼ぶ)。 「6ヶ月(前後)」の時、(6ヶ月表示Aを、呼ぶ)。 「6ヶ月(来月)」の時、(6ヶ月表示Bを、呼ぶ)。 「12ヶ月」の時、(12ヶ月表示を、呼ぶ)。 「年間表示」の時、(年間表示を、呼ぶ)。 「年度表示」の時、(年度表示を、呼ぶ)。 戻る。
*1ヶ月表示 母艦の、幅は、180。 母艦の、高さは、180。 SW=0。SH=0。 日数設定を、呼ぶ。 戻る。
*2ヶ月表示A 母艦の、幅は、360。 母艦の、高さは、180。 当月=今月。 今月=日付加算(今月,「-0/1/0」)。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=当月。 戻る。
*2ヶ月表示B 母艦の、幅は、360。 母艦の、高さは、180。 当月=今月。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=当月。 戻る。
*3ヶ月表示A 母艦の、幅は、540。 母艦の、高さは、180。 当月=今月。 今月=日付加算(今月,「-0/1/0」)。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=0。 日数設定を、呼ぶ。 今月=当月。 戻る。
*3ヶ月表示B 母艦の、幅は、540。 母艦の、高さは、180。 当月=今月。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=0。 日数設定を、呼ぶ。 今月=当月。 戻る。
*6ヶ月表示A 母艦の、幅は、540。 母艦の、高さは、360。 当月=今月。 今月=日付加算(今月,「-0/2/0」)。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=0。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=180。 日数設定を、呼ぶ。 今月=当月。 戻る。
*6ヶ月表示B 母艦の、幅は、540。 母艦の、高さは、360。 当月=今月。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=0。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=180。 日数設定を、呼ぶ。 今月=当月。 戻る。
*12ヶ月表示 母艦の、幅は、720。 母艦の、高さは、540。 当月=今月。 今月=日付加算(今月,「-0/2/0」)。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=0。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=0。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=360。 日数設定を、呼ぶ。 今月=当月。 戻る。
*年間表示 母艦の、幅は、720。 母艦の、高さは、540。 当月=今月。 今月=LEFT(今月,5)&「01/01」。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=0。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=0。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=360。 日数設定を、呼ぶ。 今月=当月。 戻る。
*年度表示 母艦の、幅は、720。 母艦の、高さは、540。 当月=今月。 今月=日付加算(今月,「-0/3/0」) 今月=LEFT(今月,5)&「04/01」。 SW=0。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=0。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=0。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=180。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=0。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=180。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=360。SH=360。 日数設定を、呼ぶ。 今月=日付加算(今月,「0/1/0」)。 SW=540。SH=360。 日数設定を、呼ぶ。 今月=当月。 戻る。
*日数設定 今月を、「/」で、区切る。 Yr=それ#0。M=それ#1。 日数=「31\n28\n31\n30\n31\n30\n31\n31\n30\n31\n30\n31」 もし、Yr%400=0ならば、日数#1="29"。 違えば(もし、Yr%100=0ならば、日数#1="28"。 違えば(もし、Yr%4=0ならば、日数#1="29"。 違えば、日数#1="28"。 )。 )。 D=日数#(M-1)。 'ここよりカレンダーの表示 (SW+53,SH+5)へ、移動。 文字色=色0。 「{Yr}年{M}月」と、表示。 xサイズ=25;yサイズ=20;x=SW+5;y=SH+25 7回( 回数で、条件分岐。 1の時(文字色=色1) 7の時(文字色=色2) その他の時(文字色=色0) (x,y)へ、移動。 (右寄せ(週#(回数-1)#0,2))と、表示。 x=x+xサイズ。 ) 月曜判定=0 x=SW+5;y=y+yサイズ D回( 本日=日付加算(今月,「0/0/{回数-1}」)。 DAY=曜日を数値で得る(本日)。 もし、DAY=2ならば、(月曜判定=月曜判定+1) DAYで、条件分岐。 1の時(字色=1) 7の時(字色=2) その他の時(字色=0) 祝日判定を、呼ぶ。 字色で、条件分岐。 1の時(文字色=色1) 2の時(文字色=色2) 3の時(文字色=色3) その他の時(文字色=色0) 本日=RIGHT(本日,2) もし、LEFT(本日,1)=0ならば、本日=RIGHT(本日,1) 本日=右寄せ(本日,2)。 もし、回数=1ならば、x=x+(DAY-1)*xサイズ。 (x,y)へ、移動。本日と、表示。 もし、今日表示=1ならば、( もし、同じ日=1ならば、( ペン色=色4。 (x,y)から、(x+yサイズ,y)へ、線。 (x+yサイズ,y)から、(x+yサイズ,y+yサイズ)へ、線。 (x,y)から、(x,y+yサイズ)へ、線。 (x,y+yサイズ)から、(x+yサイズ,y+yサイズ)へ、線。 ) ) x=x+xサイズ。もし、DAY%7=0ならば、(x=SW+5;y=y+yサイズ) ) 戻る。
*祝日判定 '休日は1、祝日は3、今日は4 月日=RIGHT(本日,5) 春分=INT(20.8431+0.242194*(Yr-1980)-INT((Yr-1980)/4)) 秋分=INT(23.2488+0.242194*(Yr-1980)-INT((Yr-1980)/4)) 'その日判定 同じ日=0 もし、(本日=今日)ならば、(同じ日=1)。 '固定の祝日 月日で、条件分岐。 「01/01」の時、字色=3 「02/11」の時、字色=3 「03/{春分}」の時、字色=3 「04/29」の時、字色=3 「05/03」の時、字色=3 「05/05」の時、字色=3 「09/{秋分}」の時、字色=3 「11/03」の時、字色=3 「11/23」の時、字色=3 「12/23」の時、字色=3 「05/04」の時、字色=3 もし、DAY=2ならば、( 月日で、条件分岐。 「01/02」の時、字色=1 「02/12」の時、字色=1 「03/{春分+1}」の時、字色=1 「04/30」の時、字色=1 「05/04」の時、字色=1 「05/06」の時、字色=1 「09/{秋分+1}」の時、字色=1 「11/04」の時、字色=1 「11/24」の時、字色=1 「12/24」の時、字色=1 ) もし、DAY=1ならば、( 月日で、条件分岐。 「05/04」の時、字色=1 ) '2000年からのハッピーマンデー対応 もし、Yr<2000ならば、( 月日で、条件分岐。 「01/15」の時、字色=3 「10/10」の時、字色=3 もし、DAY=2ならば、( 月日で、条件分岐。 「01/16」の時、字色=1 「10/11」の時、字色=1 ) ) 違えば、( もし、月曜判定=2ならば、( もし、DAY=2ならば、( Mで、条件分岐。 「01」の時、字色=3 「10」の時、字色=3 ) ) ) '2003年からのハッピーマンデー対応(敬老の日) もし、Yr<2003ならば、( 月日で、条件分岐。 「09/15」の時、字色=3 もし、DAY=2ならば、( 月日で、条件分岐。 「09/16」の時、字色=1 ) ) 違えば、( もし、月曜判定=3ならば、( もし、DAY=2ならば、( Mで、条件分岐。 「09」の時、字色=3 ) もし、DAY=3ならば、( 月日で、条件分岐。 「09/{秋分-1}」の時、字色=3 ) ) ) '2003年からのハッピーマンデー対応(海の日) もし、Yr>1995ならば、( もし、Yr<2003ならば、( 月日で、条件分岐。 「07/20」の時、字色=3 もし、DAY=2ならば、( 月日で、条件分岐。 「07/21」の時、字色=1 ) ) 違えば、( もし、月曜判定=3ならば、( もし、DAY=2ならば、( Mで、条件分岐。 「07」の時、字色=3 ) ) ) ) 戻る。
*色設定 選択した色で、条件分岐。 「黒色」の時、選択した色=黒色。 「赤色」の時、選択した色=赤色。 「青色」の時、選択した色=青色。 「緑色」の時、選択した色=緑色。 「紫色」の時、選択した色=紫色。 「茶色」の時、選択した色=茶色。 「オレンジ色」の時、選択した色=オレンジ色。 「灰色」の時、選択した色=灰色。 「水色」の時、選択した色=水色。 「黄色」の時、選択した色=黄色。 戻る。
*キーコントロール もし、押されたキー=74{j}ならば、来月。 もし、押されたキー=70{f}ならば、前月。 もし、押されたキー=75{k}ならば、来年。 もし、押されたキー=68{d}ならば、前年。 もし、押されたキー=72{h}ならば、現在月。 もし、押されたキー=71{g}ならば、任意月。 もし、押されたキー=67{c}ならば、色色設定。 もし、押されたキー=89{y}ならば、曜日設定。 もし、押されたキー=77{m}ならば、月数設定。 もし、押されたキー=88{x}ならば、ENDE。 もし、押されたキー=80{p}ならば、プリント。 'テンキー もし、押されたキー=107{+}ならば、来月。 もし、押されたキー=109{-}ならば、前月。 もし、押されたキー=106{*}ならば、来年。 もし、押されたキー=111{/}ならば、前年。 もし、押されたキー=110{.}ならば、現在月。 もし、押されたキー=96{0}ならば、任意月。 もし、押されたキー=97{1}ならば、色色設定。 もし、押されたキー=98{2}ならば、曜日設定。 もし、押されたキー=99{3}ならば、月数設定。 もし、押されたキー=102{6}ならば、プリント。 もし、押されたキー=105{9}ならば、ENDE。 'ファンクションその他 もし、押されたキー=112{F1}ならば、任意月。 もし、押されたキー=116{F5}ならば、現在月。 もし、押されたキー=117{F6}ならば、来月。 もし、押されたキー=115{F4}ならば、前月。 もし、押されたキー=118{F7}ならば、来年。 もし、押されたキー=114{F3}ならば、前年。 もし、押されたキー=119{F8}ならば、色色設定。 もし、押されたキー=120{F9}ならば、曜日設定。 もし、押されたキー=113{F2}ならば、月数設定。 もし、押されたキー=121{F10}ならば、プリント。 もし、押されたキー=27{Esc}ならば、ENDE。
|