ふと欲しくなったので、月齢を計算するライブラリを作成してみました。



Download

http://gist.github.com/gists/246449/download

Overview

天文学的な近似法を用いて任意の日時における月齢を計算します。

$m = new MoonAgeTime();
$m->setTargetTime(mktime(12, 0, 0, 10, 27, 1999));
$moonAge = $m->getMoonAge();

  • 返り値はfloatです。
  • 便宜上、円周率は0.017453278(ラジアン)に、地球の自転遅れは0.00074074074(日)に近似されています。
  • 基本的に日本国内での使用を前提としています。
  • 近似計算を一部省略しているため、若干実体とは離れます。



Sample

試しにこんな画像を用意してみました。



適当な処理を行うと、現在の月の状況をアイコンで表すことが出来ます。