def new_year(cls, gregorian_year): """Return fixed date of Observational (classical) Nisan 1 occurring in Gregorian year, 'gregorian_year'.""" jan1 = GregorianDate.new_year(gregorian_year) equinox = Solar.solar_longitude_after(Astro.SPRING, jan1) sset = JAFFA.universal_from_standard(JAFFA.sunset(ifloor(equinox))) return cls.phasis_on_or_after(ifloor(equinox) - (14 if (equinox < sset) else 13), JAFFA)
def solar_longitude_on_or_after(cls, lam, fixed_date): """Return moment (Beijing time) of the first date on or after fixed date, 'fixed_date', (Beijing time) when the solar longitude will be 'lam' degrees.""" tee = Solar.solar_longitude_after(lam, cls.location(fixed_date).universal_from_standard(fixed_date)) return cls.location(tee).standard_from_universal(tee)