;ELC ;;; compiled by rms@delasyd.gnu.ai.mit.edu on Wed May 1 13:47:06 1996 ;;; from file /home/fsf/rms/e19/lisp/solar.el ;;; emacs version 19.30.99.4. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`solar.el' was compiled for Emacs 19.29 or later")) (byte-code "! !!!!" [fboundp atan require lisp-float-type error "Solar/lunar calculations impossible since floating point is unavailable." cal-dst cal-julian] 2) #@422 *The pseudo-pattern that governs the way a time of day is formatted. A pseudo-pattern is a list of expressions that can involve the keywords `12-hours', `24-hours', and `minutes', all numbers in string form, and `am-pm' and `time-zone', both alphabetic strings. For example, the form '(24-hours ":" minutes (if time-zone " (") time-zone (if time-zone ")")) would give military-style times like `21:07 (UTC)'. (defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) (#$ . -653)) #@333 *Latitude of `calendar-location-name' in degrees. The value can be either a decimal fraction (one place of accuracy is sufficient), + north, - south, such as 40.7 for New York City, or the value can be a vector [degrees minutes north/south] such as [40 50 north] for New York City. This variable should be set in `site-start'.el. (defvar calendar-latitude nil (#$ . -1215)) #@330 *Longitude of `calendar-location-name' in degrees. The value can be either a decimal fraction (one place of accuracy is sufficient), + east, - west, such as -73.9 for New York City, or the value can be a vector [degrees minutes east/west] such as [73 55 west] for New York City. This variable should be set in `site-start'.el. (defvar calendar-longitude nil (#$ . -1598)) #@68 Convert calendar-latitude to a signed decimal fraction, if needed. (defalias 'calendar-latitude #[nil "HHå\\Hƚ\f\f[)" [calendar-latitude 0 1 60.0 lat 2 north] 3 (#$ . 1978)]) (put (quote calendar-latitude) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@69 Convert calendar-longitude to a signed decimal fraction, if needed. (defalias 'calendar-longitude #[nil "HHå\\Hƚ\f\f[)" [calendar-longitude 0 1 60.0 long 2 east] 3 (#$ . 2272)]) (put (quote calendar-longitude) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@209 *Expression evaluating to name of `calendar-longitude', calendar-latitude'. For example, "New York City". Default value is just the latitude, longitude pair. This variable should be set in `site-start'.el. (defvar calendar-location-name (quote (let ((float-output-format "%.1f")) (format "%s%s, %s%s" (if (numberp calendar-latitude) (abs calendar-latitude) (+ (aref calendar-latitude 0) (/ (aref calendar-latitude 1) 60.0))) (if (numberp calendar-latitude) (if (> calendar-latitude 0) "N" "S") (if (equal (aref calendar-latitude 2) (quote north)) "N" "S")) (if (numberp calendar-longitude) (abs calendar-longitude) (+ (aref calendar-longitude 0) (/ (aref calendar-longitude 1) 60.0))) (if (numberp calendar-longitude) (if (> calendar-longitude 0) "E" "W") (if (equal (aref calendar-longitude 2) (quote east)) "E" "W"))))) (#$ . -2571)) #@596 *Tolerance (in minutes) for sunrise/sunset calculations. A larger value makes the calculations for sunrise/sunset faster, but less accurate. The default is half a minute (30 seconds), so that sunrise/sunset times will be correct to the minute. It is useless to set the value smaller than 4*delta, where delta is the accuracy in the longitude of the sun (given by the function `solar-ecliptic-coordinates') in degrees since (delta/360) x (86400/60) = 4 x delta. At present, delta = 0.01 degrees, so the value of the variable `solar-error' should be at least 0.04 minutes (about 2.5 seconds). (defvar solar-error 0.5 (#$ . -3416)) #@53 List of season changes for the northern hemisphere. (defvar solar-n-hemi-seasons (quote ("Vernal Equinox" "Summer Solstice" "Autumnal Equinox" "Winter Solstice")) (#$ . 4055)) #@53 List of season changes for the southern hemisphere. (defvar solar-s-hemi-seasons (quote ("Autumnal Equinox" "Winter Solstice" "Vernal Equinox" "Summer Solstice")) (#$ . 4237)) #@58 Sidereal time at Greenwich at midnight (universal time). (defvar solar-sidereal-time-greenwich-midnight nil (#$ . 4419)) #@120 T if spring or summer and nil otherwise. Needed for polar areas, in order to know whether the day lasts 0 or 24 hours. (defvar solar-spring-or-summer-season nil (#$ . 4547)) #@53 Prompt user for latitude, longitude, and time zone. (defalias 'solar-setup #[nil " !\f!?!" [beep calendar-longitude solar-get-number "Enter longitude (decimal fraction; + east, - west): " calendar-latitude "Enter latitude (decimal fraction; + north, - south): " calendar-time-zone "Enter difference from Coordinated Universal Time (in minutes): "] 2 (#$ . 4727)]) #@97 Return a number from the minibuffer, prompting with PROMPT. Returns nil if nothing was entered. (defalias 'solar-get-number #[(prompt) " \"˜? !)" [read-string prompt "" x string-to-int] 4 (#$ . 5123)]) (defalias 'solar-sin-degrees #[(x) "" [nil (byte-code " \"_!" [sin 0.017453292519943295 mod x 360.0] 5) ((solar-sin-degrees x))] 3]) (defalias 'solar-cosine-degrees #[(x) "" [nil (byte-code " \"_!" [cos 0.017453292519943295 mod x 360.0] 5) ((solar-cosine-degrees x))] 3]) (defalias 'solar-tangent-degrees #[(x) "" [nil (byte-code " \"_!" [tan 0.017453292519943295 mod x 360.0] 5) ((solar-tangent-degrees x))] 3]) #@44 Determines the quadrant of the point X, Y. (defalias 'solar-xy-to-quadrant #[(x y) "V\nVÇć\nVŇƇ" [x 0 y 1 4 2 3] 2 (#$ . 5784)]) #@35 Determines the quadrant of ANGLE. (defalias 'solar-degrees-to-quadrant #[(angle) "\n\"\"T" [floor mod angle 360 90] 4 (#$ . 5936)]) #@35 Arctangent of X in quadrant QUAD. (defalias 'solar-arctan #[(x quad) "\n!_\fŚ \\+\fǚ \\+\fȚ* \\+ )" [57.295779513082323 atan x deg quad 2 180 3 4 360] 3 (#$ . 6079)]) #@23 Arctan of point X, Y. (defalias 'solar-atn2 #[(x y) "U\nVÇć\n\"" [x 0 y 90 270 solar-arctan] 3 (#$ . 6276)]) #@13 Arcos of X. (defalias 'solar-arccos #[(x) "\n_Z!\n \")" [sqrt 1 x y solar-atn2] 4 (#$ . 6407)]) #@14 Arcsin of Y. (defalias 'solar-arcsin #[(y) "\n_Z! \n\")" [sqrt 1 y x solar-atn2] 4 (#$ . 6515)]) #@27 Convert DEGREES to hours. (defalias 'solar-degrees-to-hours #[(degrees) "" [degrees 15.0] 2 (#$ . 6624)]) (put (quote solar-degrees-to-hours) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@44 Convert HOUR to decimal fraction of a day. (defalias 'solar-hours-to-days #[(hour) "" [hour 24.0] 2 (#$ . 6835)]) (put (quote solar-hours-to-days) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@101 Right ascension of the sun, in hours, given LONGITUDE and OBLIQUITY. Both arguments are in degrees. (defalias 'solar-right-ascension #[(longitude obliquity) "\n!\f!_\f!\"ǥ)" [solar-arctan solar-cosine-degrees obliquity solar-tangent-degrees longitude solar-degrees-to-quadrant degrees 15.0] 5 (#$ . 7052)]) #@99 Declination of the sun, in degrees, given LONGITUDE and OBLIQUITY. Both arguments are in degrees. (defalias 'solar-declination #[(longitude obliquity) "\n! !_!" [solar-arcsin solar-sin-degrees obliquity longitude] 4 (#$ . 7374)]) #@621 Sunrise, sunset and length of day. Parameters are the midday TIME and the LATITUDE, LONGITUDE of the location. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component being the universal time. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. Coordinates are included because this function is called with latitude=10 degrees to find out if polar regions have 24 hours of sun or only night. (defalias 'solar-sunrise-and-sunset #[(time latitude longitude) "\n \f$\n \f$ =\nV& 1\nW7 7 C C Z M  Υ\\Y ϥ\\ E+" [solar-moment -1 latitude longitude time rise-time 1 set-time nil day-length 0 solar-spring-or-summer-season 24 calendar-time-zone 60.0 60.0] 5 (#$ . 7615)]) #@499 Sunrise/sunset at location. Sunrise if DIRECTION =-1 or sunset if =1 at LATITUDE, LONGITUDE, with midday being TIME. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component being the universal time. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. Uses binary search. (defalias 'solar-moment #[(direction latitude longitude time) "A@ \f_\\    @D$A@D$A@WV  Z!٥Y  \\ڥ  D$A@ W  VK K ̚? .\n" [time ut 1 possible direction 12.0 utmin utmax 0.0 utmoment-old 1.0 utmoment 0 hut t0 solar-horizontal-coordinates latitude longitude t hmin hmax -0.60999999999999999 -0.60999999999999999 abs solar-error 60 2 -0.60999999999999999 -0.60999999999999999] 6 (#$ . 8569)]) #@110 Printable form for decimal fraction TIME in TIME-ZONE. Format used is given by `calendar-time-display-form'. (defalias 'solar-time-string #[(time time-zone) " _!¥ ¦\" \\ɦT\"\n Y'˂( \"#." [round time 60 24-hours format "%02d" minutes "%d" 11 12 12-hours "pm" "am" am-pm mapconcat eval calendar-time-display-form ""] 5 (#$ . 9573)]) #@45 Printable form for time expressed in hours. (defalias 'solar-daylight #[(time) " ! !Z_!#" [format "%d:%02d" floor time 60] 7 (#$ . 9944)]) #@202 Date and Universal Time of local noon at *local date* date. The date may be different from the one asked for, but it will be the right local date. The second component of date should be an integer. (defalias 'solar-exact-local-noon #[(date) " \f ( H Hƥ\\ Hɚ$'[)ʥZ  \"   Z YT@A@\\AA@E Z  Wn@A@ZAA@E \\ AA@)S@)A@)AA@)S_\\V_\\إZ֦U٦U?ڦU)T-_\\֥\\٥[\\ڥ\\*! +D" [date nd 12.0 calendar-longitude 0 1 60.0 long 2 east 15 ut solar-time-equation te 24 calendar-gregorian-from-absolute prior-years month day year 31 day-of-year 4 23 10 100 400 365] 7 (#$ . 10098)]) #@134 List of *local* times of sunrise, sunset, and daylight on Gregorian DATE. Corresponding value is nil if there is no sunrise/sunset. (defalias 'solar-sunrise-sunset #[(date) " !\n@!\f!\f\nA@D  ? H H̥\\  HϚ; > [)#AA@VO˂P\f\nA@DcHHԥ\\H֚~[)   H H̥\\  HϚ  [)#@ \"A@ \"AA@ @\"A @\"A!E. " [solar-exact-local-noon date exact-local-noon solar-julian-ut-centuries t0 solar-sidereal-time solar-sidereal-time-greenwich-midnight solar-sunrise-and-sunset 10.0 calendar-longitude 0 1 60.0 long 2 east equator-rise-set 12 solar-spring-or-summer-season calendar-latitude 60.0 lat north rise-set rise dst-adjust-time adj-rise set adj-set length calendar-date-equal solar-daylight] 7 (#$ . 10811)]) #@77 String of *local* times of sunrise, sunset, and daylight on Gregorian DATE. (defalias 'solar-sunrise-sunset-string #[(date) " !\n@\n@\"P\nA@'\nA@\"P(\f!\nAA@%)" [solar-sunrise-sunset date l format "%s, %s at %s (%s hours daylight)" "Sunrise " apply solar-time-string "No sunrise" "sunset " "no sunset" eval calendar-location-name] 7 (#$ . 11661)]) #@88 Number of Julian centuries elapsed since 1 Jan, 2000 at noon U.T. for Gregorian DATE. (defalias 'solar-julian-ut-centuries #[(date) "AA@)S@)A@)AA@) \nS_\\\nV]\n_\\ʥZ\fȦUT\f̦U?T\fͦU)]T- _\\ ȥ\\ ̥[\\ ͥ\\*ωAA@)S@)A@)AA@) \nS_\\\nV\n_\\ʥZ\fȦU\f̦U?\fͦU)T- _\\ ȥ\\ ̥[\\ ͥ\\*ZХ" [date prior-years month day year 31 day-of-year 2 4 23 10 0 100 400 365 (1 1.5 2000) 36525.0] 7 (#$ . 12040)]) #@442 Ephemeris Time at moment TIME. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component being the universal time. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. Result is in julian centuries of ephemeris time. (defalias 'solar-ephemeris-time #[(time) "@A@ \nåĥ\\_\\!!_\f \f˥ĥ\\-" [time t0 ut 24.0 36525 t1 100 2000 y solar-ephemeris-correction floor 86400 dt] 4 (#$ . 12550)]) #@545 First moment on or after Julian day number D when sun's longitude is a multiple of L degrees at calendar-location-name with that location's local time (including any daylight savings rules). L must be an integer divisor of 360. Result is in local time expressed astronomical (Julian) day numbers. The values of calendar-daylight-savings-starts, calendar-daylight-savings-starts-time, calendar-daylight-savings-ends, calendar-daylight-savings-ends-time, calendar-daylight-time-offset, and calendar-time-zone are used to interpret local time. (defalias 'solar-date-next-longitude #[(d l) "\n\n! !T_\"\n\n˥_\\  ! ZWg  \\Х\n!\nUI \nWW\nU^ W^\n '\n '  \\ҥ." [nil long d start solar-longitude start-long mod l floor 360 next 360.0 400 end end-long 1.0000000000000001e-05 2.0 0 2.0] 5 (#$ . 13187)]) #@504 Azimuth and height of the sun at TIME, LATITUDE, and LONGITUDE. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component being the universal time. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. The azimuth is given in degrees as well as the height (between -180 and 180). (defalias 'solar-horizontal-coordinates #[(time latitude longitude for-sunrise-sunset) "A@ \" _\\_\f@_Z # B H H̥\\  HϚ> A [)[Z\fA@!!_!!_Z!\"!!_!!_!_\\!VZ.D" [time ut solar-equatorial-coordinates for-sunrise-sunset ec solar-sidereal-time-greenwich-midnight 1.00273790935 st 15 calendar-longitude 0 1 60.0 long 2 east ah de solar-atn2 solar-cosine-degrees solar-sin-degrees latitude solar-tangent-degrees azimuth solar-arcsin height 180 360] 6 (#$ . 14052)]) #@437 Right ascension (in hours) and declination (in degrees) of the sun at TIME. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component being the universal time. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. (defalias 'solar-equatorial-coordinates #[(time for-sunrise-sunset) " !\n\f\" @ A@\" @ A@\"*D" [solar-ephemeris-time time tm solar-ecliptic-coordinates for-sunrise-sunset ec solar-right-ascension solar-declination] 4 (#$ . 15109)]) #@240 Apparent longitude of the sun, ecliptic inclination, (both in degrees) equation of time (in hours) and nutation in longitude (in seconds) at moment `time', expressed in julian centuries of Ephemeris Time since January 1st, 2000, at 12 ET. (defalias 'solar-ecliptic-coordinates #[(time for-sunrise-sunset) "\n_\\\n_\n_\\\n_\\\n_\\\n_\n_\\\n_\n_\n_\\\f\n_\\\n_\n_\\\n_\n_\n_\\\n_\\\n_\n_\\\f!_\n_\\\f\\!_\\\f_!_\\\f\\\n_\\?!_\f\\!_\\\\!_\\\\!_\\$?\n_\\\n_\n_\\(\\!_\\+?!!_.?.\f\\!_(\f!__\\(._\f!_\f\\!__\\._._\f_!_\\(_(_\f\\!_\\_6+6$F.\f" [280.46645000000001 36000.769829999997 time 0.0003032 l 218.31649999999999 481267.88130000001 ml 357.52910000000003 35999.050300000003 -0.00015589999999999999 -4.7999999999999996e-07 m 23.439291109999999 -0.013004167000000001 -1.6388999999999999e-07 5.0360000000000004e-07 i 1.9146000000000001 -0.0048170000000000001 -1.4e-05 solar-sin-degrees 0.019993 -0.000101 0.00029 3 c L 125.04000000000001 -1934.136 omega for-sunrise-sunset -17.199999999999999 -1.3200000000000001 -0.23000000000000001 0.20999999999999999 nut 0.016708616999999999 -4.2036999999999997e-05 -1.236e-07 ecc -0.0056899999999999997 -0.0047800000000000004 app solar-tangent-degrees 2 y -2 solar-cosine-degrees 4 -0.5 -1.25 12 3.1415926535000001 time-eq] 5 (#$ . 15791)]) #@379 Longitude of sun on astronomical (Julian) day number D. Accurary is about 0.0006 degree (about 365.25*24*60*0.0006/360 = 1 minutes). The values of calendar-daylight-savings-starts, calendar-daylight-savings-starts-time, calendar-daylight-savings-ends, calendar-daylight-savings-ends-time, calendar-daylight-time-offset, and calendar-time-zone are used to interpret local time. (defalias 'solar-longitude #[(d) " !\n\n! ƥǥZ ʥ˥Z!\f\f!!!\fAA@)!\\\fZѥ_\\\"\"_\\_\\!_Z_\"_\\_\\'\\\"(_\\_\\'\\\",(!_,!_\\_1\"\\1\\_\". " [calendar-absolute-from-astro d a-d calendar-astro-from-absolute dst-in-effect calendar-daylight-time-offset 24.0 60.0 0 calendar-time-zone 60.0 24.0 date solar-ephemeris-correction calendar-gregorian-from-absolute floor 2451545 3652500 U 4.9353929000000001 62833.196168000002 9.9999999999999995e-08 apply + mapcar #[(x) "@A@AA@ _\\\f\\\"!_" [x sin mod U pi] 6] solar-data-list longitude 9.9999999999999995e-08 cos 3.1000000000000001 62830.139999999999 17 973 aberration mod 2.1800000000000002 -3375.6999999999998 0.35999999999999999 pi A1 3.5099999999999998 125666.39 0.10000000000000001 A2 -9.9999999999999995e-08 sin 834 64 nutation 57.295779513082323 360.0] 8 (#$ . 17211)]) (byte-code "\nB" [((403406 4.7219639999999998 1.621043) (195207 5.9374580000000003 62830.348066999999) (119433 1.1155889999999999 62830.821523999999) (112392 5.7816159999999996 62829.634301999999) (3891 5.5473999999999997 125660.56909999999) (2819 1.512 125660.984) (1721 4.1897000000000002 62832.476600000002) (0 1.163 0.81299999999999994) (660 5.415 125659.31) (350 4.3150000000000004 57533.849999999999) (334 4.5529999999999999 -33.930999999999997) (314 5.1980000000000004 777137.71499999997) (268 5.9889999999999999 78604.191000000006) (242 2.911 5.4119999999999999) (234 1.423 39302.097999999998) (158 0.060999999999999999 -34.860999999999997) (132 2.3170000000000002 115067.698) (129 3.1930000000000001 15774.337) (114 2.8279999999999998 5296.6700000000001) (99 0.52000000000000002 58849.269999999997) (93 4.6500000000000004 5296.1099999999997) (86 4.3499999999999996 -3980.6999999999998) (78 2.75 52237.690000000002) (72 4.5 55076.470000000001) (68 3.23 261.07999999999998) (64 1.22 15773.85) (46 0.14000000000000001 188491.03) (38 3.4399999999999999 -7756.5500000000002) (37 4.3700000000000001 264.88999999999999) (32 1.1399999999999999 117906.27) (29 2.8399999999999999 55075.75) (28 5.96 -7961.3900000000003) (27 5.0899999999999999 188489.81) (27 1.72 2132.1900000000001) (25 2.5600000000000001 109771.03) (24 1.9199999999999999 54868.559999999998) (21 0.089999999999999997 25443.93) (21 5.9800000000000004 -55731.43) (20 4.0300000000000002 60697.739999999998) (18 4.4699999999999998 2132.79) (17 0.79000000000000004 109771.63) (14 4.2400000000000002 -7752.8199999999997) (13 2.0099999999999998 188491.91) (13 2.6499999999999999 207.81) (13 4.9800000000000004 29424.630000000001) (12 0.93000000000000005 -7.9900000000000002) (10 2.21 46941.139999999999) (10 3.5899999999999999 -68.290000000000006) (10 1.5 21463.25) (10 2.5499999999999998 157208.39999999999)) solar-data-list current-load-list] 2) #@199 Ephemeris time minus Universal Time during Gregorian year. Result is in days. For the years 1800-1987, the maximum error is 1.9 seconds. For the other years, the maximum error is about 30 seconds. (defalias 'solar-ephemeris-correction #[(year) " X W \\\\ťƥǥ X W E\f\fAA@)S \f\f\f@)\f\fA@)\f\fAA@)S_\\V_\\եZ ӦU צU? ئU)T- _\\ ӥ\\ ץ[\\ إ\\*!\fډ\fAA@)S \f\f\f@)\f\fA@)\f\fAA@)S_\\V_\\եZ ӦU צU? ئU)T- _\\ ӥ\\ ץ[\\ إ\\*!Zۥ____ _\\_\\_\\_\\ _\\__\\__\\- X W E\f\fAA@)S \f\f\f@)\f\fA@)\f\fAA@)S_\\V_\\եZ ӦU צU? ئU)T- _\\ ӥ\\ ץ[\\ إ\\*!\f\fAA@)S \f\f\f@)\f\fA@)\f\fAA@)S_\\V_\\եZ ӦU| צU?| ئU)T- _\\ ӥ\\ ץ[\\ إ\\*!Z륉____ _\\_\\_\\_\\ _\\__\\__\\__\\_ _\\ _ _\\- X+ W+ Z::_:_:_\\\\@)ˉ E\f\fAA@)S \f\f\f@)\f\fA@)\f\fAA@)S_\\V_\\եZ ӦU צU? ئU)T- _\\ ӥ\\ ץ[\\ إ\\*!AZB_CDZEFGH*" [1988 year 2020 67.0 -2000 60.0 60.0 24.0 1900 calendar-astro-from-absolute 7 1 date prior-years month day 31 day-of-year 2 4 23 10 0 100 400 365 (1 1 1900) 36525.0 theta theta2 theta3 theta4 theta5 -2.0000000000000002e-05 0.00029700000000000001 0.025184000000000002 -0.18113299999999999 0.55303999999999998 -0.86193799999999998 0.67706599999999995 -0.212591 1800 (1 1 1900) 36525.0 -9.0000000000000002e-06 0.0038440000000000002 0.083562999999999998 0.86573599999999995 4.8675750000000004 15.845535 31.332267000000002 38.291998999999997 28.316289000000001 11.636203999999999 2.0437940000000001 1620 1600 10.0 x 2.1916699999999998 -40.674999999999997 196.58332999999999 60.0 60.0 24.0 2382148 tmp 41048480.0 15 second 60.0 60.0 24.0] 8 (#$ . 20424)]) #@117 Sidereal time (in hours) in Greenwich. At T0=Julian centuries of universal time. T0 must correspond to 0 hours UT. (defalias 'solar-sidereal-time #[(t0) "\n_\\\n_\n_\\\n_\n_\n_\\\nD!\" AAA@\f A@ Ή \f !_Хѥ\\\"\\\"-" [6.6973745999999998 2400.0513369999999 t0 2.5862200000000001e-05 -1.7221999999999999e-09 mean-sid-time solar-ephemeris-time 0.0 et solar-ecliptic-coordinates nil nut-i nut i mod solar-cosine-degrees 15 3600 24.0 24.0 24.0] 7 (#$ . 22509)]) #@77 Equation of time expressed in hours at Gregorian DATE at Universal time UT. (defalias 'solar-time-equation #[(date ut) " \n\" \"AA@*" [solar-date-to-et date ut et solar-ecliptic-coordinates nil ec] 4 (#$ . 22999)]) #@116 Ephemeris Time at Gregorian DATE at Universal Time UT (in hours). Expressed in julian centuries of Ephemeris Time. (defalias 'solar-date-to-et #[(date ut) " !\n\fD!)" [solar-julian-ut-centuries date t0 solar-ephemeris-time ut] 3 (#$ . 23229)]) #@328 Local time of sunrise and sunset for today. Accurate to a few seconds. If called with an optional prefix argument, prompt for date. If called with an optional double prefix argument, prompt for longitude, latitude, time zone, and date, and always use standard time. This function is suitable for execution in a .emacs file. (defalias 'sunrise-sunset #[(&optional arg) "W \f  W%\f(!W3 6!WA D!WP  ` !i H Hҥ\\ | VxӂԂ H֚ӂ\f\f!\fH\fHץ\\\f\fV؂ق\fHښ؂%) W U܂ W \" \"WW  W \n $$\"'$!)')#+!-+G X8+\"\\')Q!-Y5UZZ!\".\f" [arg 1 16 calendar-latitude calendar-longitude calendar-time-zone solar-setup solar-get-number "Enter longitude (decimal fraction; + east, - west): " "Enter latitude (decimal fraction; + north, - south): " "Enter difference from Coordinated Universal Time (in minutes): " calendar-location-name "%.1f" float-output-format format "%s%s, %s%s" abs 0 60.0 "N" "S" 2 north 60.0 "E" "W" east calendar-standard-time-zone-name "UTC" "UTC%dmin" "UTC+%dmin" calendar-daylight-savings-starts calendar-daylight-savings-ends 4 calendar-current-date calendar-read-date date calendar-date-string t date-string solar-sunrise-sunset-string time-string "%s: %s" msg one-window-p one-window frame-width message "%s" "*temp*" princ "\n" substitute-command-keys pop-up-windows "Type \\[delete-other-windows] to remove temp window." "Type \\[switch-to-buffer] RET to remove temp window." "Type \\[switch-to-buffer-other-window] RET to restore old contents of temp window."] 7 (#$ . 23484) "p"]) #@84 Local time of sunrise and sunset for date under cursor. Accurate to a few seconds. (defalias 'calendar-sunrise-sunset #[nil "\f \f\n !ʼn#!#)" [calendar-latitude calendar-longitude calendar-time-zone solar-setup calendar-cursor-to-date t date message "%s: %s" calendar-date-string solar-sunrise-sunset-string] 6 (#$ . 25208) nil]) #@79 Local time of sunrise and sunset as a diary entry. Accurate to a few seconds. (defalias 'diary-sunrise-sunset #[nil "\f \f\n !" [calendar-latitude calendar-longitude calendar-time-zone solar-setup solar-sunrise-sunset-string date] 2 (#$ . 25567)]) #@124 Local time of candle lighting diary entry--applies if date is a Friday. No diary entry if there is no sunset on that date. (defalias 'diary-sabbath-candles #[nil "\f \f\n \fAA@)S\f@)\fA@)\fAA@)S_\\\nVw\n_\\ΥZ\n̦UnЦU?nѦU)w\nT\n\n- _\\ ̥\\ Х[\\ ѥ\\*ӦU\f!A@@ZAB\"\"*" [calendar-latitude calendar-longitude calendar-time-zone solar-setup date prior-years month day year 31 day-of-year 2 4 23 10 0 100 400 365 7 5 solar-sunrise-sunset sunset 0.29999999999999999 light format "%s Sabbath candle lighting" apply solar-time-string] 6 (#$ . 25835)]) #@212 Date of equinox/solstice K for YEAR. K=0, spring equinox; K=1, summer solstice; K=2, fall equinox; K=3, winter solstice. RESULT is a gregorian local date. Accurate to less than a minute between 1951 and 2050. (defalias 'solar-equinoxes/solstices #[(k year) " \n\"Zť_Z  !_ \\!_\\\\\"\" _\\_\\__\\ۥZZ!! ZZ!Z# @ A@#\\$\\ AA@E.\n" [solar-mean-equinoxes/solstices k year JDE0 2451545.0 36525 T 35999.373 2.4700000000000002 W 0.033399999999999999 solar-cosine-degrees 0.00069999999999999999 1 Delta-lambda apply + mapcar #[(x) "@AA@\n_A@\\!_" [x solar-cosine-degrees T] 4] solar-seasons-data S 1.0000000000000001e-05 JDE 102.3 123.5 32.5 correction 86400 JD calendar-gregorian-from-absolute floor 1721424.5 date 0.5 0.5 time calendar-time-zone 60.0 24.0] 6 (#$ . 26489)]) #@200 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. (defalias 'solar-mean-equinoxes/solstices #[(k year) "ZåWȚ7 _\\ _ _\\ _ _ _\\ _ _ _ _\\EΚ^ _\\ _ _\\ _ _ _\\ _ _ _ _\\EԚ _\\ _ _\\ _ _ _\\ _ _ _ _\\EښE _\\ _ _\\ _ _ _\\ _ _ _ _\\EȚ\f_\\\f_\f_\\\f_\f_\f_\\\f_\f_\f_\f_\\EΚ\f_\\\f_\f_\\\f_\f_\f_\\\f_\f_\f_\f_\\EԚ!\f_\\\f_\f_\\\f_\f_\f_\\\f_\f_\f_\f_\\EښE\f_\\\f_\f_\\\f_\f_\f_\\\f_\f_\f_\f_\\*" [year 1000.0 2000 1000.0 z y 1000 k 0 1721139.29189 365242.13740000001 0.061339999999999999 0.0011100000000000001 -0.00071000000000000002 1 1721233.25401 365241.72561999998 -0.05323 0.0090699999999999999 0.00025000000000000001 2 1721325.7045499999 365242.49557999999 -0.11677 -0.00297 0.00073999999999999999 3 1721414.3998700001 365242.88257000002 -0.0076899999999999998 -0.0093299999999999998 -6.0000000000000002e-05 2451623.8098399998 365242.37404000002 0.05169 -0.0041099999999999999 -0.00056999999999999998 2451716.5676699998 365241.62602999998 0.0032499999999999999 0.0088800000000000007 -0.00029999999999999997 2451810.2171499999 365242.01766999997 -0.11575000000000001 0.0033700000000000002 0.00077999999999999999 2451900.0595200001 365242.74049 -0.062230000000000001 -0.0082299999999999995 0.00032000000000000003] 3 (#$ . 27349)]) (byte-code "\nB" [((485 324.95999999999998 1934.136) (203 337.23000000000002 32964.466999999997) (199 342.07999999999998 20.186) (182 27.850000000000001 445267.11200000002) (156 73.140000000000001 45036.885999999999) (136 171.52000000000001 22518.442999999999) (77 222.53999999999999 65928.933999999994) (74 296.72000000000003 3034.9059999999999) (70 243.58000000000001 9037.5130000000008) (58 119.81 33718.146999999997) (52 297.17000000000002 150.678) (50 21.02 2281.2260000000001) (45 247.53999999999999 29929.562000000002) (44 325.14999999999998 31555.955999999998) (29 60.93 4443.4170000000004) (18 155.12 67555.327999999994) (17 288.79000000000002 4562.4520000000002) (16 198.03999999999999 62894.029000000002) (14 199.75999999999999 31436.920999999998) (12 95.390000000000001 14577.848) (12 287.11000000000001 31931.756000000001) (12 320.81 34777.258999999998) (9 227.72999999999999 1222.114) (8 15.449999999999999 16859.074000000001)) solar-seasons-data current-load-list] 2) #@111 *local* date and time of equinoxes and solstices, if visible in the calendar window. Requires floating point. (defalias 'solar-equinoxes-solstices #[nil " \n_ \\ ŦUǂ\" ŦU!Ƃ\"\\\\\nĦT\nĥ) <\f=\f F O [ \\ ťS\n\"@A@!AA@EA@A@!Z_\"@A@A@٥\\AA@EAA@)S@)A@)AA@)S_\\!V!_\\Z!UU?U)!T!!-_\\\\[\\\\*((!!,x,O,n,H,H\\.,Hj.m.[)Wx0z18((!Z_(!4\f\"#. DC" [displayed-month displayed-year y m 12 3 1 -1 2 0 macro-y calendar-time-zone calendar-standard-time-zone-name "UTC" calendar-daylight-savings-starts calendar-daylight-savings-ends k solar-equinoxes/solstices d0 floor d1 24 h0 dst-adjust-time adj 24.0 d date prior-years month day year 31 day-of-year 4 23 10 100 400 365 abs-day calendar-gregorian-from-absolute format "%s %s" calendar-latitude 60.0 lat north solar-s-hemi-seasons solar-n-hemi-seasons solar-time-string dst-in-effect calendar-daylight-time-zone-name] 9 (#$ . -29838)]) (provide (quote solar))