月の満ち欠けPHPライブラリを書きました、ご自由にお使いください。
ちょっと適当なアイコンで表示。
もっと正確なアイコンを取り入れたい方はご自身でご自由に変更ください。
月の満ち欠けの計算方法はネットから見つけてきました。
情報を記載していただいた先人の知恵を借りPHPライブラリが出来ました。
ありがとうございます。
<?php
//date_default_timezone_set('Asia/Tokyo');
class moon{
static public $icon = array(
"0"=>'?',//朔
"1"=>'?',//朔
"2"=>'?',//朔
"3"=>'?',//三日月
"4"=>'?',//三日月
"5"=>'?',//三日月
"6"=>'?',//三日月
"7"=>'?',//上弦の月',
"8"=>'?',//上弦の月',
"9"=>'?',//上弦の月',
"10"=>'?',//上弦の月',
"11"=>'?',//上弦の月',
"12"=>'?',//十三夜月
"13"=>'?',//十三夜月
"14"=>'?',//十三夜月
"15"=>"?",//望月
"16"=>"?",//望月
"17"=>"?",//望月
"18"=>"?",//望月
"19"=>"?",//寝待月
"20"=>"?",//寝待月
"21"=>"?",//寝待月
"22"=>"?",//寝待月
"23"=>'?',//下弦の月
"24"=>'?',//下弦の月
"25"=>'?',//下弦の月
"26"=>"?",//二十六夜月
"27"=>"?",//二十六夜月
"28"=>"?",//二十六夜月
"29"=>"?"//二十六夜月
);
static public $res = "0";
static public $moon_gregorian = array(0,2,0,2,2,4,5,6,7,8,9,10);
public function main($year=2012,$mon=12,$day=12)
{
static::$res = ((($year-11)%19)*11 + static::$moon_gregorian[$mon-1]+$day)%30;
}
public function icon(){
return static::$icon[static::$res];
}
}
呼び出しはこんな感じで。
<?php
moon::main($year,$mon,$day);
$chg = moon::icon();