code: 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;
    }
docs: 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