##====================================================================================## ## カレンダーライブラリ v1.2 ## Copyright2005 - NorenzPRO ## http://www.norenz.net/ ##====================================================================================## ■カレンダーライブラリについて このライブラリパッケージは、閏年判定を始め、 年月日情報から、曜日やその月の日数などを調べるものです。 また、3月の春分日や、9月の秋分日なども調べられます。 カレンダーのCGIを作成するときの参考にお使い下さい。 ■使用例 calendlib/ [755] | |- .htaccess (あなたのサーバーで必要な場合のみ御利用下さい) | |- index.cgi [755] (CGI本体) |- calendlib.pl [755] (カレンダーライブラリ) | |- jcode.pl [755] (CGIライブラリ) |- cgi-lib217.pl [755] (CGIライブラリ) | ■[calendlib.pl]の使用方法 [指定年が閏年かどうかを判定する] ## 引数: yyyy ## 2003年なら2003とする ## ## 使用例 ## &calendlib'getbis(yyyy); ## ## 戻り値 ## 閏年なら1、平年なら0を返す [指定年月日より曜日を返す] ## 引数: yyyymmdd ## 2003年4月9日なら20030409とする ## ## 使用例 ## $getweek = &calendlib'getweek(yyyymmdd); ## ## 戻り値 ## sun,mon,tue,wed,thu,fri,sat, error のいずれかが ## $getweekに格納される。 [指定年月より月の日数を返す] ## 引数: yyyymm ## 2003年4月なら200304とする ## ## 使用例 ## $getmday = &calendlib'getmday(yyyymm); ## ## 戻り値 ## その月の日数が$getmdayに格納される。 [指定年より春分日を返す(有効期間:1980〜2099年)] ## 引数: yyyy ## 2003年なら2003とする ## ## 使用例 ## $getspring = &calendlib'getspring(yyyy); ## ## 戻り値 ## 春分日の日数(有効期間範囲外は0を返す) [指定年より秋分日を返す(有効期間:1980〜2099年)] ## 引数: yyyy ## 2003年なら2003とする ## ## 使用例 ## $getautmn = &calendlib'getautmn(yyyy); ## ## 戻り値 ## 秋分日の日数(有効期間範囲外は0を返す) [指定年月日より前日の日付を返す] ## 引数: yyyymmdd ## 2003年4月9日なら20030409とする ## ## 使用例 ## &calendlib'getyesterday(yyyymmdd); ## ## 戻り値 ## 20030408 の前日値を返す [指定年月日より翌日の日付を返す] ## 引数: yyyymmdd ## 2003年4月9日なら20030409とする ## ## 使用例 ## &calendlib'gettomorrow(yyyymmdd); ## ## 戻り値 ## 20030410 の翌日値を返す ■曜日取得のアルゴリズムについて [Zeller式にて算出] $result = int($year + int($year/4) - int($year/100) + int($year/400) + int((13*$cl_mn+8)/5) + $day)%7; $resultは日曜日〜月曜日について 0,1,2,3,4,5,6 の数値で得られる [備考] 1月、2月は前年の13月、14月として計算する。 この公式の有効範囲は、1583年から3999年まで。 現在使われているグレゴリオ暦は「1582/10/15(Fri)」を初日としている。 それ以前はユリウス暦が使用されていた。 ■閏年判定、及び月の日数取得のアルゴリズムについて [平年における毎月の日数] 1月〜12月 31,28,31,30,31,30,31,31,30,31,30,31 [閏年における毎月の日数] 2月のみが29日に変更・残りは平年と同じ [閏年の判定条件] 1. 西暦年が、4で割り切れる年は閏年とする 2. 1)の条件を満たしても100で割り切れる年は平年とする 3. 2)の条件を満たしても400で割り切れる年は閏年とする ■春分日および秋分日取得のアルゴリズムについて 国民の祝日に関する法律(昭和23年法律第178号)により毎年変わる。 これにおいては前年の2/1付官報で日本国政府から発表される。 グレゴリオ暦では、春分日は3/19〜3/21の間。秋分日は9/22〜9/24の間で 例年これに基づく日が適用されている。 政府がこの計算式を使用しているかどうかは不明。 1980年〜2099年 .春分日 (3月$result日) $result=int(20.8431+0.242194*($year-1980)-int(($year-1980)/4)) .秋分日 (9月$result日) $result=int(23.2488+0.242194*($year-1980)-int(($year-1980)/4)) ■祝日に関するアルゴリズムについて 国民の祝日に関する法律(抜粋) 公布: 昭和12年 7月20日 第7次改正: 平成13年 6月22日(官報号外第127号) 改正法施行: 平成14年 1月1日 第一条 自由と平和を求めてやまない日本国民は、美しい風習を育てつつ、よりよき社会、より豊かな生活を築きあげるために、 ここに国民こぞつて 祝い、感謝し、又は記念する日を定め、これを「国民の祝日」と名づける。 第二条 「国民の祝日」を次のように定める。 .元日 1月1日  年のはじめを祝う。 .成人の日 1月の第2月曜日  おとなになつたことを自覚し、みずから生き抜こうとする青年を祝いはげます。 .建国記念の日 政令で定める日(2月11日)  建国をしのび、国を愛する心を養う。 .春分の日 春分日  自然をたたえ、生物をいつくしむ。 .みどりの日 4月29日  自然に親しむとともにその恩恵に感謝し、豊かな心をはぐくむ。 .憲法記念日 5月3日  日本国憲法の施行を記念し、国の成長を期する。 .こどもの日 5月5日  こどもの人格を重んじ、こどもの幸福をはかるとともに、母に感謝する。 .海の日 7月の第3月曜日  海の恩恵に感謝するとともに、海洋国日本の繁栄を願う。 .敬老の日 9月の第3月曜日  多年にわたり社会につくしてきた老人を敬愛し、長寿を祝う。 .秋分の日 秋分日  祖先をうやまい、なくなった人々をしのぶ。 .体育の日 10月の第2月曜日  スポーツにしたしみ、健康な心身をつちかう。 .文化の日 11月3日  自由と平和を愛し、文化をすすめる。 .勤労感謝の日 11月23日  勤労をたつとび、生産を祝い、国民たがいに感謝しあう。 .天皇誕生日 12月23日  天皇の誕生日を祝う。 第三条 1.「国民の祝日」は、休日とする。 2.「国民の祝日」が日曜日にあたるときは、その翌日を休日とする。 3.その前日及び翌日が「国民の祝日」である日(日曜日にあたる日及び前項に規定する休日にあたる日を除く。 ■更新履歴 [ver1.0] ・リリース [ver1.2] ・前日処理・翌日処理を追加 ■COPYRIGHT(著作権について) このスクリプトの著作権は、のれんずPROが有します。 再配布ならびに改造については許可します。 但し著作権は放棄しません。 改造して再配布するときは、どこを改造したかを明記し、 またあなたの著作権表記も並記した上で、 2次著作物として再配布してください。 ■免責事項 このスクリプトの利用によるデータの紛失など、 いかなる損害については、当方は一切の責任を持ちません。