サンプル・プログラムの実行例
サンプル・プログラム
getCursedDays.php | サンプル・プログラム本体。 |
pahooInputData.php | データ入力に関わる関数群。 使い方は「数値入力とバリデーション」「文字入力とバリデーション」などを参照。include_path が通ったディレクトリに配置すること。 |
pahooCalendar.php | 暦計算クラス pahooCalendar。 暦計算クラスの使い方は「PHPで日出没・月出没・月齢・潮を計算」を参照。include_path が通ったディレクトリに配置すること。 |
バージョン | 更新日 | 内容 |
---|---|---|
1.4.0 | 2023/10/14 | pahooInputDataクラス,Spinner導入 |
1.3 | 2021/05/12 | PHP8対応,リファラ・チェック追加 |
1.2 | 2019/12/20 | 旧暦の2033年問題につき,2033年以降の六曜計算を省く |
1.1 | 2019/09/21 | 六曜計算の不具合を修正,リファラチェック追加 |
1.0 | 2016/05/15 | 初版 |
バージョン | 更新日 | 内容 |
---|---|---|
1.5.0 | 2024/01/28 | exitIfExceedVersion() 追加 |
1.4.2 | 2024/01/28 | exitIfLessVersion() メッセージ修正 |
1.4.1 | 2023/09/30 | コメントの訂正 |
1.4.0 | 2023/09/09 | $_GET, $_POST参照をfilter_input()関数に置換 |
1.3.0 | 2023/07/11 | roundFloat() 追加 |
バージョン | 更新日 | 内容 |
---|---|---|
4.5.0 | 2024/03/17 | ヒジュラ暦メソッドを追加 |
4.4.1 | 2024/03/17 | getCabinetOfficeHolidayTable() -- bug-fix |
4.4.0 | 2024/02/25 | 内閣府の祝日表を参照できるようにした |
4.3.2 | 2023/02/11 | getSolarTerm72() 表記改訂:水澤腹堅→水沢腹堅 |
4.3.1 | 2023/02/03 | 表記改訂:バクムーン→バックムーン,スタージャンムーン→スタージョンムーン,七十二候 |
サンプル・プログラムの解説
252: // メイン・プログラム =======================================================
253: //西暦年取得
254: $msg = $errmsg = '';
255: $year = getValidNumber('year', $errmsg, date('Y'), TRUE, YEAR_MIN, YEAR_MAX);
256: if (isButton('reset')) {
257: $year = date('Y');
258: $errmsg = '';
259: }
260:
261: //pahooCalendarクラス
262: $pcl = new pahooCalendar();
263: $pcl->setLanguage('jp');
264:
265: //13日の金曜日一覧を求める
266: if ($errmsg == '') {
267: $msg = "<table>\n";
268: $day = 13;
269: $cnt = 1;
270: for ($yyyy = $year; $yyyy < $year + 10; $yyyy++) {
271: $pcl->makeLunarCalendar($yyyy);
272: $msg .= sprintf("<tr><td class=\"index\" colspan=\"3\">%04d年</td></tr>\n", $yyyy);
273: for ($month = 1; $month <= 12; $month++) {
274: $ww = $pcl->getWeekNumber($yyyy, $month, $day);
275: if ($ww == 5) {
276: $youbi = $pcl->getWeekString($yyyy, $month, $day);
277: list($month_lunar, $day_lunar, $flag) = $pcl->Gregorian2Lunar($yyyy, $month, $day);
278: //2033年以降は六曜計算しない
279: $rokuyou = $pcl->error ? '' : $pcl->rokuyou($month_lunar, $day_lunar);
280: $msg .= sprintf("<tr><td>%02d</td><td>%02d月%02d日(%s)</td><td>%s</td></tr>\n", $cnt, $month, $day, $youbi, $rokuyou);
281: $cnt++;
282: }
283: }
284: }
285: $msg .= "</table>\n";
286: } else {
287: $msg = $errrmsg;
288: }
289:
290: //表示HTML作成
291: $HtmlBody = makeCommonBody($year, $msg);
292:
293: //画面表示
294: echo $HtmlHeader;
295: echo $HtmlBody;
296: echo $HtmlFooter;
297:
298: //インスタンス解放
299: $pcl = NULL;
300:
301: /*
まず、クラスファイル "pahooCalendar.php" を require_once し、オブジェクトを生成する。
ここでは、最初に入力した西暦年 $year から10年間、毎月をfor文で回し、各月13日の曜日番号が 5、つまり金曜日であれば六曜を計算し表示する。
六曜は旧暦から求めるが、詳細については「PHPで3ヶ月カレンダーを作る」を参照されたい。
なお、西暦2033年(令和15年)に旧暦(天保暦)が決められないという「2033年問題」があるため、2033年(令和15年)以降の六曜計算はスキップするようにした。
参考サイト
- PHPで3ヶ月カレンダーを作る:ぱふぅ家のホームページ
- PHPで二十四節気・七十二候一覧を作成:ぱふぅ家のホームページ
- 13日の金曜日の仏滅:舞の介護日誌
- 今日は、13日の金曜日しかも仏滅:とりあえずw
(2023年10月14日)pahooInputDataクラス,Spinner導入.