Function: solar-mean-equinoxes/solstices

solar-mean-equinoxes/solstices is a byte-compiled function defined in solar.el.gz.

Signature

(solar-mean-equinoxes/solstices K YEAR)

Documentation

Julian day of mean equinox/solstice K for YEAR.

K=0, spring equinox; K=1, summer solstice; K=2, fall equinox; K=3, winter solstice. These formulas are only to be used between 1000 BC and 3000 AD.

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/solar.el.gz
;; From Meeus, 1991, page 166.
(defun solar-mean-equinoxes/solstices (k year)
  "Julian day of mean equinox/solstice K for YEAR.
K=0, spring equinox; K=1, summer solstice; K=2, fall equinox; K=3, winter
solstice.  These formulas are only to be used between 1000 BC and 3000 AD."
  (let ((y (/ year 1000.0))
        (z (/ (- year 2000) 1000.0)))
    (if (< year 1000)                ; actually between -1000 and 1000
        (cond ((= k 0) (+ 1721139.29189
                          (*  365242.13740 y)
                          (* 0.06134 y y)
                          (* 0.00111 y y y)
                          (* -0.00071 y y y y)))
              ((= k 1) (+ 1721233.25401
                          (* 365241.72562 y)
                          (* -0.05323 y y)
                          (* 0.00907 y y y)
                          (* 0.00025 y y y y)))
              ((= k 2) (+ 1721325.70455
                          (* 365242.49558 y)
                          (* -0.11677 y y)
                          (* -0.00297 y y y)
                          (* 0.00074 y y y y)))
              ((= k 3) (+ 1721414.39987
                          (* 365242.88257 y)
                          (* -0.00769 y y)
                          (* -0.00933 y y y)
                          (* -0.00006 y y y y))))
                                        ; actually between 1000 and 3000
      (cond ((= k 0) (+ 2451623.80984
                        (* 365242.37404  z)
                        (* 0.05169 z z)
                        (* -0.00411 z z z)
                        (* -0.00057 z z z z)))
            ((= k 1) (+ 2451716.56767
                        (* 365241.62603 z)
                        (* 0.00325 z z)
                        (* 0.00888 z z z)
                        (* -0.00030 z z z z)))
            ((= k 2) (+ 2451810.21715
                        (* 365242.01767 z)
                        (* -0.11575 z z)
                        (* 0.00337 z z z)
                        (* 0.00078 z z z z)))
            ((= k 3) (+ 2451900.05952
                        (* 365242.74049 z)
                        (* -0.06223 z z)
                        (* -0.00823 z z z)
                        (* 0.00032 z z z z)))))))