□投稿者/ クジラ飛行机 -(2002/05/20(Mon) 01:47:39)
□U R L/ |
{---プログラム掲示板投稿フォーム--- 【ソフト名】祝日付カレンダー(バージョン 1.00) 【作 成 者】クジラ飛行机 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.47 【転 載】可(ご自由に) 【改変運用】可(投稿したプログラムを他人が改造し運用することを許すか) 【ひまわり本体への梱包】可 【実行時に利用作成するファイル】無 【コメント】日付を入力すると、祝日を調べるプログラムです。カレンダーソフトにどうぞ ---投稿フォームここまで---}
'祝日調査 *メイン部分 今日を、「/」で、区切る。年=それ#0;月=それ#1;日=それ#2 調査日は、「{年}/{月}/1」'今月の頭から
母艦の、テキストは、「{年}年{月}月の祝日カレンダー」
月の日数を取得 日数は、それ。
カレンダー=「」 Iを、0から、(日数-1)まで、繰り返す( カレンダー#0#I=(I+1) 祝日データベース調査 カレンダー#1#I=それ 調査日に、「+0/0/1」を、日付加算して、調査日に、入れる。 ) カレンダーグリッドを、グリッドとして、作成。 その、アイテムは、「日付,祝日\n」&カレンダー 待機。
*月の日数を取得 '入力=調査日 '出力=それに、月の日数を返す '2,4,6,9,11月以外は、31日まで 月日数表=「31,29,31,30,31,30,31,31,30,31,30,31」 'うるう年補正 「{年}/2/28」に、「+0/0/1」を、日付加算して、『/』で、区切る。 もし、それが、『02』ならば、月日数表#1#0="28" 調査日を、『/』で、区切る。Y=それ#0; M=それ#1; D=それ#2 それは、月日数表#(M-1)#0 戻る
*祝日データベース調査 '入力 = 調査日 '出力 = それに、休日の名前を返す
'特定の日(月/日,名前) 特定日=「01/01,元日 02/11,建国記念日 04/29,みどりの日 05/03,憲法記念日 05/05,こどもの日 11/03,文化の日 11/23,勤労感謝の日 12/23,天皇誕生日」
'特定の月と週(月-週,名前) 特定月曜日=「01-02,成人の日 10-2,体育の日」
'2002年以前の特定日 特定日2002=「07/20,海の日 09/15,敬老の日」
'2003年より特定の月と週 特定月曜日2003=「07-03,海の日 09-03,敬老の日」
'月日を調べる 調査日を、「/」で、区切る。 Y=INT(それ#0); M=INT(それ#1); D=INT(それ#2) MM=指定形式に変換(M,"%.2d") DD=指定形式に変換(D,"%.2d") 月日 = 「{MM}/{DD}」
'春分の日 3月X日を求める計算式 X=INT(20.8431+0.242194*(Y-1980)-INT((Y-1980)/4)) 特定日=特定日&「\n03/{X},春分の日」 '秋分の日 9月X日を求める計算式 X=INT(23.2488+0.242194*(Y-1980)-INT((Y-1980)/4)) 特定日=特定日&「\n09/{X},秋分の日」
'月週を調べる 月週 = 「」 調査日の、曜日を数値で得る。 もし、それが、2ならば('月曜日ならば、月週を調べる 「{Y}/{M}/1」の、曜日を数値で得て、Wに、入れる。 WD = INT((W-1+D)/7) もし、(W<=2)ならば、WD=WD+1 月週 =「{M}-{WD}」 '月週と、言う。 )
特定日の、0列目から、月日を、表ピックアップして、結果に、入れる。 もし、結果<0ならば( 特定月曜日の、0列目から、月週を、表ピックアップして、結果に、入れる。 もし、結果<0ならば( もし、Y>=2003ならば( 特定月曜日2003の、0列目から、月週を、表ピックアップして。 結果に、入れる。 )違えば( 特定日2002の、0列目から、月日を、表ピックアップして。 結果に、入れる。 ) ) )。
それは、結果#1#0 戻る。 |
|