以前、リリースしたまま放置している『日の出日の入り計算モジュール』を、
オブジェクト指向プログラミングの習作として、書き直しました。
そのまま置いておくのも何なので、リリースしておきます。

calcSunTime.zip[2.64KB]

使い方:

使う意思のある人は見れば分かると思いますし、 見て分からないヒトは、これだけ単体でゲットしようとは思わないと思うので(苦笑) (一応、何らかのサービスの形にしたいとは思ってますが) アレですが、一応書いておきます。


仕様


$st = new calcSunTime(int 経度, int 緯度, int year, int hour, int day);

// 日の出(薄明)
$st->getSunRiseHakumei();

// 日の出
$st->getSunRise();

// 日の入
$st->getSunSet();

// 日の入(薄明)
$st->getSunSetHakumei();

インスタンス生成時に、
経度、緯度、対象年月日を指定します。
省略した場合には、それぞれ、京都の経度/緯度、本日が適用されます。

結果は、UNIX時間で返されます。

使用例(その1) - 京都の本日の日の出/日の入時刻

$st = new calcSunTime();

$st->getSunRiseHakumei(); // 日の出(薄明)
$st->getSunRise(); // 日の出
$st->getSunSet(); // 日の入
$st->getSunSetHakumei(); // 日の入(薄明)


使用例(その2) - 東京の日の出/日の入時刻


$st = new calcSunTime(139.62, 35.63);

$st->getSunRiseHakumei(); // 日の出(薄明)
$st->getSunRise(); // 日の出
$st->getSunSet(); // 日の入
$st->getSunSetHakumei(); // 日の入(薄明)


使用例(その3) - 1977/1/26の明石での日の出/日の入時刻


$st = new calcSunTime(135.00, 34.22, 1977, 1, 26);

$st->getSunRiseHakumei(); // 日の出(薄明)
$st->getSunRise(); // 日の出
$st->getSunSet(); // 日の入
$st->getSunSetHakumei(); // 日の入(薄明)

注意点

習作、ということで、PHP5のみでの動作です。 というわけで、さくらインターネットでは動かないというオチが付いています(苦笑) (PHP5をローカル領域に入れて動作させることは可能です)

なので、サンプルはありません。
すみません。

旧プログラムで動くサンプルはこちらにあります。

日の出/日の入時刻計算モジュール:サンプル

で。

これを利用して何らかのモノを作ろう…と思ってますが、 まだ、構想だけです。 さて、どれから作ろうかなー

註:

緯度/経度は、一般的な度分秒ではなく、角度に変換したもので入力してください。
例) 京都の場合
135度46分18秒 → 135.7717
35度0分29秒 → 35.0081

A度B分C秒 → A + B/60 + C/3600


以下のサイトが参考になります。

経度緯度の表示形式変換


『薄明』は、日の出の場合にはその直前、明るくなり始める時刻。
日の入りの場合には、その直後、すっかり暗くなる時刻。
定義としては、以下のように定められています。
薄明 - Wikipediaより抜粋)

市民薄明(常用薄明、第三薄明) Civil twilight  太陽高度?50分??6度。まだ十分に明るさが残っていて、明かりなしで屋外で活動ができる明るさ。 航海薄明(第二薄明) Naval twilight(Nautical twilight)  太陽高度?6度??12度。海面と空との境が見分けられる程度の明るさ。 天文薄明(第一薄明) Astronomical twilight  太陽高度?12度??18度。太陽からの光が完全になくなり、6等星が肉眼で見分けられるようになる明るさ
理科年表では、江戸時代の明け六つ、暮六つに相当する時間として、太陽高度が?7度21分40秒になる時刻を夜明け・日暮れとしている。

このプログラムでは便宜的に、理科年表の時刻を、薄明として採用しています。