src/Marando/AstroDate/Traits/SolsticeEquinoxTrait.php
private static function approx($year, array $terms) {
    // Find appropriate year term and calculate approximate JDE
    $Y    = $year < 1000 ? (int)$year / 1000 : ((int)$year - 2000) / 1000;
    $jde0 = static::Horner($Y, $terms);

    // Calculate T and other required values
    $T  = ($jde0 - 2451545.0 ) / 36525;
    $W  = deg2rad(35999.373 * $T - 2.47);
    $Δλ = 1 + 0.0334 * cos($W) + 0.0007 * cos(2 * $W);

    // Sum the periodic terms for the solstice or equinox
    $S = 0;
    foreach (static::periodicTerms() as $term)
      $S += $term[0] * cos(deg2rad($term[1]) + deg2rad($term[2]) * $T);

    // Calculate the time of the solstice or equinox
    $jde = $jde0 + ((0.00001 * $S) / $Δλ);
    return $jde;
  }
private static function approx($year, array $terms) {
    // Find appropriate year term and calculate approximate JDE
    $Y    = $year < 1000 ? (int)$year / 1000 : ((int)$year - 2000) / 1000;
    $jde0 = static::Horner($Y, $terms);

    // Calculate T and other required values
    $T  = ($jde0 - 2451545.0 ) / 36525;
    $W  = deg2rad(35999.373 * $T - 2.47);
    $Δλ = 1 + 0.0334 * cos($W) + 0.0007 * cos(2 * $W);

    // Sum the periodic terms for the solstice or equinox
    $S = 0;
    foreach (static::periodicTerms() as $term)
      $S += $term[0] * cos(deg2rad($term[1]) + deg2rad($term[2]) * $T);

    // Calculate the time of the solstice or equinox
    $jde = $jde0 + ((0.00001 * $S) / $Δλ);
    return $jde;
  }
private static function approx ( $ year , array $ terms ) { // Find appropriate year term and calculate approximate JDE $ Y = $ year < 1000 ? ( int ) $ year / 1000 : ( ( int ) $ year - 2000 ) / 1000 ; $ jde0 = static :: Horner ( $ Y , $ terms ) ; // Calculate T and other required values $ T = ( $ jde0 - 2451545.0 ) / 36525 ; $ W = deg2rad ( 35999.373 * $ T - 2.47 ) ; $ Δλ = 1 + 0 0334 * c s($ W ) + 0 0007 * c s(2 * $ ) ; // Sum the periodic terms for the solstice or equinox $ S = 0 ; foreach ( static :: periodicTerms ( ) as $ term ) $ S += $ term [ 0 ] * cos ( deg2rad ( $ term [ 1 ] ) + deg2rad ( $ term [ 2 ] ) * $ T ) ; // Calculate the time of the solstice or equinox $ jde = $ jde0 + ( ( 0.00001 * $ S ) / $ Δλ); return $ jde ; }
Finds the approximate time of a solstice or equinox in TD

@param int   $year  The year to find a solstice or equinox for
@param array $terms An array of the mean terms for the desired equinox or
solstice

@return float The JD of the solstice or equinox in TD
Finds the approximate time of a solstice or equinox in TD