「Y'sカレンダー ver1.20」からの派生作品です。設定等の機能はありません。 {▼ここから} {---プログラム掲示板投稿フォーム--- 【ソフト名】逆さカレンダー (バージョン 1.00) 【作 成 者】Yosshy (連絡先:yosshy4@m21.alpha-net.ne.jp) 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.56 【転 載】可(転載条件:作者にメールで連絡すること) 【改変運用】可 【ひまわり本体への梱包】可 【実行時に利用作成するファイル】なし 【コメント】180度逆さのカレンダーです 設定とかは変えられませんが、ジョークカレンダーとして。 ちょっと見辛いです。 ---投稿フォームここまで---} 「User32」の、「DWORD GetSystemMenu(DWORD,BOOL)」を、「?,?」の、「API_GetSystemMenu」として、DLLを利用。 「User32」の、「BOOL EnableMenuItem(DWORD,int,int)」を、「?,?,?」の、「API_EnableMenuItem」として、DLLを利用。 *コントロールパネル コントロールフォームを、作る。 その、スタイルは、ダイアログスタイル。 その、可視は、オン。 その、テキストは、「操作パネル」。 その、幅は、120。 その、高さは、200。 文字サイズ=10。 (10,10)に、任意月エディタを、作る。 そを、コントロールフォームに、乗せる。 その、幅は、80。 (90,10)に、Goボタンを、作る。 そを、コントロールフォームに、乗せる。 その、幅は、20。 その、イベントは( それは、(任意月エディタの、テキスト)。 もし、それ=「」ならば、待機。 もし、文字数(それ)=7でなければ、待機。 今月=それ&「/01」。 メインへ、飛ぶ。 ) (5,50)に、前年ボタンを、作る。 そを、コントロールフォームに、乗せる。 その、幅は、20。 その、テキストは、「≪」。 その、イベントは( 今月=日付加算(今月,「-1/0/0」)。 メインへ、飛ぶ。 ) (27,50)に、前月ボタンを、作る。 そを、コントロールフォームに、乗せる。 その、幅は、20。 その、テキストは、「<」。 その、イベントは( 今月=日付加算(今月,「-0/1/0」)。 メインへ、飛ぶ。 ) (50,50)に、現在月ボタンを、作る。 そを、コントロールフォームに、乗せる。 その、幅は、20。 その、テキストは、「○」。 その、イベントは( 今月=LEFT(今日,8)&「01」。 メインへ、飛ぶ。 ) (73,50)に、来月ボタンを、作る。 そを、コントロールフォームに、乗せる。 その、幅は、20。 その、テキストは、「>」。 その、イベントは( 今月=日付加算(今月,「0/1/0」)。 メインへ、飛ぶ。 ) (95,50)に、来年ボタンを、作る。 そを、コントロールフォームに、乗せる。 その、幅は、20。 その、テキストは、「≫」。 その、イベントは( 今月=日付加算(今月,「1/0/0」)。 メインへ、飛ぶ。 ) (20,120)に、方法ラベルを、作る。 そを、コントロールフォームに、乗せる。 その、テキストは、「≪:1年戻る\n<:1ヶ月戻る\n○:現在月\n>:1ヶ月進む\n≫:1年進む\nGo:記した月へ」。 システムメニューのハンドル=API_GetSystemMenu((コントロールフォームの、ハンドル),0) API_EnableMenuItem(システムメニューのハンドル,$F060,1)
*タイトル 母艦の、タイトルは、「Y'sカレンダー」 母艦の、リサイズは、オフ。 今月=LEFT(今日,8)&「01」。
*メニュー 設定メニューを、メニュー作成。 その、テキストは、「&Control」。 設定メニューに、印刷メニューを、メニュー追加。 その、テキストは、「印刷」。その、ショートカットキーは、「Ctrl+P」。 その、イベントは( *プリント 母艦印刷。 ) 設定メニューに、保存メニューを、メニュー追加。 その、テキストは、「保存」。その、ショートカットキーは、「Ctrl+F」。 その、イベントは( *画像として保存 ダイアログ初期値=「」。 ダイアログキャンセルの値=「」。 「ビットマップ形式 (*.bmp)(推奨)|*.bmp|PNG形式 (*.png)|*.png|JPEG形式 (*.jpg)|*.jpg|全てのファイル (*.*)|*.*」の、書込ファイル選択。 もし、それが、「」でなければ、( それへ、母艦を、イメージ保存。 ) とりあえずへ、飛ぶ。 ) 設定メニューに、区切り線1を、メニュー追加。 その、テキストは、「-」。 設定メニューに、バージョンメニューを、メニュー追加。 その、テキストは、「バージョン」。 その、イベントは( 文字サイズ=10。 「逆さカレンダー ver.1.00\n (c)Yosshy」と、言う。 文字サイズ=12。 ) 設定メニューに、終了メニューを、メニュー追加。 その、テキストは、「終了」。その、ショートカットキーは、「Alt+X」。 その、イベントは( *ENDE 「終了しますか」と、二択。 もし、それが、はいならば、(INIファイル閉じる。終わり。) ) システムメニューのハンドル=API_GetSystemMenu((母艦の、ハンドル),0) API_EnableMenuItem(システムメニューのハンドル,$F060,1)
*メイン 画面クリア。 *カレンダー表示 calw=180。calh=162。 母艦の、幅は、calw。 母艦の、高さは、calh。 週=「日,月,火,水,木,金,土」。 *日数設定 今月を、「/」で、区切る。 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)。 'ここよりカレンダーの表示 xサイズ=25;yサイズ=20 (90,calh-yサイズ)へ、移動。 文字色=黒色。 文字サイズ=12。 「月{M}年{Yr}」と、表示。 lx=INT(xサイズ/10);ly=INT(yサイズ/10) x=calw-xサイズ;y=calh-yサイズ*2 7回( 回数で、条件分岐。 1の時(文字色=赤色) 7の時(文字色=青色) その他の時(文字色=黒色) (x,y)へ、移動。 (右寄せ(週#(回数-1)#0,2))と、表示。 x=x-xサイズ。 ) 月曜判定=0 x=calw-xサイズ;y=y-yサイズ D回( 本日=日付加算(今月,「0/0/{回数-1}」)。 当日=本日。 DAY=曜日を数値で得る(本日)。 もし、DAY=2ならば、(月曜判定=月曜判定+1) DAYで、条件分岐。 1の時(字色=1) 7の時(字色=2) その他の時(字色=0) 祝日判定を、呼ぶ。 字色で、条件分岐。 1の時(文字色=赤色) 2の時(文字色=青色) 3の時(文字色=オレンジ色) その他の時(文字色=黒色) 本日=RIGHT(本日,2) もし、LEFT(本日,1)=0ならば、本日=RIGHT(本日,1) 本日=右寄せ(本日,2)。 もし、回数=1ならば、x=x-(DAY-1)*xサイズ。 (x,y)へ、移動。 ペン色=白色。 塗り色=白色。 もし、同じ日=1ならば、(ペン色=緑色。) ペン太さ=1。 (x-lx,y-ly)から、(x-lx+yサイズ,y-ly+yサイズ)へ、四角形。 本日と、表示。 x=x-xサイズ。もし、DAY%7=0ならば、(x=calw-xサイズ;y=y-yサイズ) ) 文字色=黒色。 文字サイズ=12。 待機。
*祝日判定 '休日は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 ) ) ) ) 戻る。 {▲ここまで} |