<?php } else { ?> <?php function dcos($arg) { return cos(deg2rad($arg)); } function dsin($arg) { return sin(deg2rad($arg)); } for ($i = 0; $i < count($myStopList); $i++) { if ($myStopList[$i]->lat != 0) { $r = 6378.137; $distant = $r * acos(dsin($lat) * dsin($myStopList[$i]->lat) + dcos($lat) * dcos($myStopList[$i]->lat) * dcos($myStopList[$i]->long - $long)); $distant = round($distant, 2) . ' km'; } else { $distant = 'N/A'; } echo "<h3>" . $myStopList[$i]->stopName . " <small>{$distant}</small></h3>"; echo "<hr>"; $lineList = $Database->getStopLine($myStopList[$i]->stopId); for ($j = 0; $j < count($lineList); $j++) { $lineName = $Database->getLineName($lineList[$j], $userName); echo "<h4>行き先: {$lineName}</h4>"; echo "<table class=table>"; echo "<thead><th>時刻</th><th>残り時間</th></thead>"; $timeData = $Database->getTimeTableEx($myStopList[$i]->stopId, $lineList[$j], get4Time() - 5, 3); for ($k = 0; $k < count($timeData); $k++) { if ($timeData[$k]->type != getTodayType()) {
function truephase($k, $phase) { $apcor = 0; $k += $phase; // add phase to new moon time $t = $k / 1236.85; // time in Julian centuries from 1900 January 0.5 $t2 = $t * $t; // square for frequent use $t3 = $t2 * $t; // cube for frequent use // mean time of phase $pt = 2415020.75933 + SYNMONTH * $k + 0.0001178 * $t2 - 1.55E-7 * $t3 + 0.00033 * dsin(166.56 + 132.87 * $t - 0.009173000000000001 * $t2); // Sun's mean anomaly $m = 359.2242 + 29.10535608 * $k - 3.33E-5 * $t2 - 3.47E-6 * $t3; // Moon's mean anomaly $mprime = 306.0253 + 385.81691806 * $k + 0.0107306 * $t2 + 1.236E-5 * $t3; // Moon's argument of latitude $f = 21.2964 + 390.67050646 * $k - 0.0016528 * $t2 - 2.39E-6 * $t3; if ($phase < 0.01 || abs($phase - 0.5) < 0.01) { // Corrections for New and Full Moon. $pt += (0.1734 - 0.000393 * $t) * dsin($m) + 0.0021 * dsin(2 * $m) - 0.4068 * dsin($mprime) + 0.0161 * dsin(2 * $mprime) - 0.0004 * dsin(3 * $mprime) + 0.0104 * dsin(2 * $f) - 0.0051 * dsin($m + $mprime) - 0.0074 * dsin($m - $mprime) + 0.0004 * dsin(2 * $f + $m) - 0.0004 * dsin(2 * $f - $m) - 0.0005999999999999999 * dsin(2 * $f + $mprime) + 0.001 * dsin(2 * $f - $mprime) + 0.0005 * dsin($m + 2 * $mprime); $apcor = 1; } elseif (abs($phase - 0.25) < 0.01 || abs($phase - 0.75) < 0.01) { $pt += (0.1721 - 0.0004 * $t) * dsin($m) + 0.0021 * dsin(2 * $m) - 0.628 * dsin($mprime) + 0.0089 * dsin(2 * $mprime) - 0.0004 * dsin(3 * $mprime) + 0.007900000000000001 * dsin(2 * $f) - 0.0119 * dsin($m + $mprime) - 0.0047 * dsin($m - $mprime) + 0.0003 * dsin(2 * $f + $m) - 0.0004 * dsin(2 * $f - $m) - 0.0005999999999999999 * dsin(2 * $f + $mprime) + 0.0021 * dsin(2 * $f - $mprime) + 0.0003 * dsin($m + 2 * $mprime) + 0.0004 * dsin($m - 2 * $mprime) - 0.0003 * dsin(2 * $m + $mprime); if ($phase < 0.5) { // First quarter correction. $pt += 0.0028 - 0.0004 * dcos($m) + 0.0003 * dcos($mprime); } else { // Last quarter correction. $pt += -0.0028 + 0.0004 * dcos($m) - 0.0003 * dcos($mprime); } $apcor = 1; } if (!$apcor) { print "truephase() called with invalid phase selector ({$phase}).\n"; exit(ERR_UNDEF); } return $pt; }