Esempio n. 1
0
 /**
  * Set locality.
  * 
  * @param Locality $Locality Locality
  * @return \Jyotish\Base\Data
  */
 public function setLocality(Locality $Locality)
 {
     if (!is_null($Locality)) {
         $this->clearData();
     }
     $this->Locality = $Locality;
     $this->data[self::BLOCK_USER]['longitude'] = $this->Locality->getLongitude();
     $this->data[self::BLOCK_USER]['latitude'] = $this->Locality->getLatitude();
     $this->data[self::BLOCK_USER]['altitude'] = $this->Locality->getAltitude();
     return $this;
 }
Esempio n. 2
0
 /**
  * Get Local Sidereal Time.
  * 
  * @param DateTime $DateTime Date
  * @param Locality $Locality Locality
  * @return float In hours
  */
 public static function getLST(DateTime $DateTime, Locality $Locality)
 {
     $hour = $DateTime->format('G');
     $minute = $DateTime->format('i');
     $second = $DateTime->format('s');
     $jc = Time::getJC($DateTime);
     $gst = 24110.54841 + 8640184.812866 * $jc + 0.09310400000000001 * $jc ** 2 - 6.2E-6 * $jc ** 3;
     $units = Math::partsToUnits($gst, 86400);
     $hourS0 = $units['parts'] / 3600;
     $hourLng = $Locality->getLongitude() / 15;
     $hourOffset = $DateTime->getOffset() / 3600;
     $hourUT = $hour + $minute / 60 + $second / 3600 - $hourOffset;
     $lst = $hourS0 + $hourLng + $hourUT * 1.002737909350795;
     $result = $lst >= 24 ? $lst -= 24 : $lst;
     return $result;
 }