1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /************************************************************************
4 * Copyright (C) 1996-2014, International Business Machines Corporation
5 * and others. All Rights Reserved.
6 ************************************************************************
7 * 2003-nov-07 srl Port from Java
12 #if !UCONFIG_NO_FORMATTING
14 #include "unicode/calendar.h"
17 #include "unicode/putil.h"
22 #include <stdio.h> // for toString()
29 # include "uresimp.h" // for debugging
31 static void debug_astro_loc(const char *f
, int32_t l
)
33 fprintf(stderr
, "%s:%d: ", f
, l
);
36 static void debug_astro_msg(const char *pat
, ...)
40 vfprintf(stderr
, pat
, ap
);
43 #include "unicode/datefmt.h"
44 #include "unicode/ustring.h"
45 static const char * debug_astro_date(UDate d
) {
46 static char gStrBuf
[1024];
47 static DateFormat
*df
= NULL
;
49 df
= DateFormat::createDateTimeInstance(DateFormat::MEDIUM
, DateFormat::MEDIUM
, Locale::getUS());
50 df
->adoptTimeZone(TimeZone::getGMT()->clone());
54 u_austrncpy(gStrBuf
,str
.getTerminatedBuffer(),sizeof(gStrBuf
)-1);
58 // must use double parens, i.e.: U_DEBUG_ASTRO_MSG(("four is: %d",4));
59 #define U_DEBUG_ASTRO_MSG(x) {debug_astro_loc(__FILE__,__LINE__);debug_astro_msg x;}
61 #define U_DEBUG_ASTRO_MSG(x)
64 static inline UBool
isINVALID(double d
) {
65 return(uprv_isNaN(d
));
68 static UMutex ccLock
= U_MUTEX_INITIALIZER
;
71 static UBool
calendar_astro_cleanup(void) {
79 * The number of standard hours in one sidereal day.
80 * Approximately 24.93.
82 * @deprecated ICU 2.4. This class may be removed or modified.
84 #define SIDEREAL_DAY (23.93446960027)
87 * The number of sidereal hours in one mean solar day.
88 * Approximately 24.07.
90 * @deprecated ICU 2.4. This class may be removed or modified.
92 #define SOLAR_DAY (24.065709816)
95 * The average number of solar days from one new moon to the next. This is the time
96 * it takes for the moon to return the same ecliptic longitude as the sun.
97 * It is longer than the sidereal month because the sun's longitude increases
98 * during the year due to the revolution of the earth around the sun.
99 * Approximately 29.53.
101 * @see #SIDEREAL_MONTH
103 * @deprecated ICU 2.4. This class may be removed or modified.
105 const double CalendarAstronomer::SYNODIC_MONTH
= 29.530588853;
108 * The average number of days it takes
109 * for the moon to return to the same ecliptic longitude relative to the
110 * stellar background. This is referred to as the sidereal month.
111 * It is shorter than the synodic month due to
112 * the revolution of the earth around the sun.
113 * Approximately 27.32.
115 * @see #SYNODIC_MONTH
117 * @deprecated ICU 2.4. This class may be removed or modified.
119 #define SIDEREAL_MONTH 27.32166
122 * The average number number of days between successive vernal equinoxes.
123 * Due to the precession of the earth's
124 * axis, this is not precisely the same as the sidereal year.
125 * Approximately 365.24
127 * @see #SIDEREAL_YEAR
129 * @deprecated ICU 2.4. This class may be removed or modified.
131 #define TROPICAL_YEAR 365.242191
134 * The average number of days it takes
135 * for the sun to return to the same position against the fixed stellar
136 * background. This is the duration of one orbit of the earth about the sun
137 * as it would appear to an outside observer.
138 * Due to the precession of the earth's
139 * axis, this is not precisely the same as the tropical year.
140 * Approximately 365.25.
142 * @see #TROPICAL_YEAR
144 * @deprecated ICU 2.4. This class may be removed or modified.
146 #define SIDEREAL_YEAR 365.25636
148 //-------------------------------------------------------------------------
149 // Time-related constants
150 //-------------------------------------------------------------------------
153 * The number of milliseconds in one second.
155 * @deprecated ICU 2.4. This class may be removed or modified.
157 #define SECOND_MS U_MILLIS_PER_SECOND
160 * The number of milliseconds in one minute.
162 * @deprecated ICU 2.4. This class may be removed or modified.
164 #define MINUTE_MS U_MILLIS_PER_MINUTE
167 * The number of milliseconds in one hour.
169 * @deprecated ICU 2.4. This class may be removed or modified.
171 #define HOUR_MS U_MILLIS_PER_HOUR
174 * The number of milliseconds in one day.
176 * @deprecated ICU 2.4. This class may be removed or modified.
178 #define DAY_MS U_MILLIS_PER_DAY
181 * The start of the julian day numbering scheme used by astronomers, which
182 * is 1/1/4713 BC (Julian), 12:00 GMT. This is given as the number of milliseconds
183 * since 1/1/1970 AD (Gregorian), a negative number.
184 * Note that julian day numbers and
185 * the Julian calendar are <em>not</em> the same thing. Also note that
186 * julian days start at <em>noon</em>, not midnight.
188 * @deprecated ICU 2.4. This class may be removed or modified.
190 #define JULIAN_EPOCH_MS -210866760000000.0
194 * Milliseconds value for 0.0 January 2000 AD.
196 #define EPOCH_2000_MS 946598400000.0
198 //-------------------------------------------------------------------------
199 // Assorted private data used for conversions
200 //-------------------------------------------------------------------------
202 // My own copies of these so compilers are more likely to optimize them away
203 const double CalendarAstronomer::PI
= 3.14159265358979323846;
205 #define CalendarAstronomer_PI2 (CalendarAstronomer::PI*2.0)
206 #define RAD_HOUR ( 12 / CalendarAstronomer::PI ) // radians -> hours
207 #define DEG_RAD ( CalendarAstronomer::PI / 180 ) // degrees -> radians
208 #define RAD_DEG ( 180 / CalendarAstronomer::PI ) // radians -> degrees
211 * Given 'value', add or subtract 'range' until 0 <= 'value' < range.
212 * The modulus operator.
214 inline static double normalize(double value
, double range
) {
215 return value
- range
* ClockMath::floorDivide(value
, range
);
219 * Normalize an angle so that it's in the range 0 - 2pi.
220 * For positive angles this is just (angle % 2pi), but the Java
221 * mod operator doesn't work that way for negative numbers....
223 inline static double norm2PI(double angle
) {
224 return normalize(angle
, CalendarAstronomer::PI
* 2.0);
228 * Normalize an angle into the range -PI - PI
230 inline static double normPI(double angle
) {
231 return normalize(angle
+ CalendarAstronomer::PI
, CalendarAstronomer::PI
* 2.0) - CalendarAstronomer::PI
;
234 //-------------------------------------------------------------------------
236 //-------------------------------------------------------------------------
239 * Construct a new <code>CalendarAstronomer</code> object that is initialized to
240 * the current date and time.
242 * @deprecated ICU 2.4. This class may be removed or modified.
244 CalendarAstronomer::CalendarAstronomer():
245 fTime(Calendar::getNow()), fLongitude(0.0), fLatitude(0.0), fGmtOffset(0.0), moonPosition(0,0), moonPositionSet(FALSE
) {
250 * Construct a new <code>CalendarAstronomer</code> object that is initialized to
251 * the specified date and time.
253 * @deprecated ICU 2.4. This class may be removed or modified.
255 CalendarAstronomer::CalendarAstronomer(UDate d
): fTime(d
), fLongitude(0.0), fLatitude(0.0), fGmtOffset(0.0), moonPosition(0,0), moonPositionSet(FALSE
) {
260 * Construct a new <code>CalendarAstronomer</code> object with the given
261 * latitude and longitude. The object's time is set to the current
264 * @param longitude The desired longitude, in <em>degrees</em> east of
265 * the Greenwich meridian.
267 * @param latitude The desired latitude, in <em>degrees</em>. Positive
268 * values signify North, negative South.
270 * @see java.util.Date#getTime()
272 * @deprecated ICU 2.4. This class may be removed or modified.
274 CalendarAstronomer::CalendarAstronomer(double longitude
, double latitude
) :
275 fTime(Calendar::getNow()), moonPosition(0,0), moonPositionSet(FALSE
) {
276 fLongitude
= normPI(longitude
* (double)DEG_RAD
);
277 fLatitude
= normPI(latitude
* (double)DEG_RAD
);
278 fGmtOffset
= (double)(fLongitude
* 24. * (double)HOUR_MS
/ (double)CalendarAstronomer_PI2
);
282 CalendarAstronomer::~CalendarAstronomer()
286 //-------------------------------------------------------------------------
287 // Time and date getters and setters
288 //-------------------------------------------------------------------------
291 * Set the current date and time of this <code>CalendarAstronomer</code> object. All
292 * astronomical calculations are performed based on this time setting.
294 * @param aTime the date and time, expressed as the number of milliseconds since
295 * 1/1/1970 0:00 GMT (Gregorian).
300 * @deprecated ICU 2.4. This class may be removed or modified.
302 void CalendarAstronomer::setTime(UDate aTime
) {
304 U_DEBUG_ASTRO_MSG(("setTime(%.1lf, %sL)\n", aTime
, debug_astro_date(aTime
+fGmtOffset
)));
309 * Set the current date and time of this <code>CalendarAstronomer</code> object. All
310 * astronomical calculations are performed based on this time setting.
312 * @param jdn the desired time, expressed as a "julian day number",
313 * which is the number of elapsed days since
314 * 1/1/4713 BC (Julian), 12:00 GMT. Note that julian day
315 * numbers start at <em>noon</em>. To get the jdn for
316 * the corresponding midnight, subtract 0.5.
319 * @see #JULIAN_EPOCH_MS
321 * @deprecated ICU 2.4. This class may be removed or modified.
323 void CalendarAstronomer::setJulianDay(double jdn
) {
324 fTime
= (double)(jdn
* DAY_MS
) + JULIAN_EPOCH_MS
;
330 * Get the current time of this <code>CalendarAstronomer</code> object,
331 * represented as the number of milliseconds since
332 * 1/1/1970 AD 0:00 GMT (Gregorian).
337 * @deprecated ICU 2.4. This class may be removed or modified.
339 UDate
CalendarAstronomer::getTime() {
344 * Get the current time of this <code>CalendarAstronomer</code> object,
345 * expressed as a "julian day number", which is the number of elapsed
346 * days since 1/1/4713 BC (Julian), 12:00 GMT.
349 * @see #JULIAN_EPOCH_MS
351 * @deprecated ICU 2.4. This class may be removed or modified.
353 double CalendarAstronomer::getJulianDay() {
354 if (isINVALID(julianDay
)) {
355 julianDay
= (fTime
- (double)JULIAN_EPOCH_MS
) / (double)DAY_MS
;
361 * Return this object's time expressed in julian centuries:
362 * the number of centuries after 1/1/1900 AD, 12:00 GMT
366 * @deprecated ICU 2.4. This class may be removed or modified.
368 double CalendarAstronomer::getJulianCentury() {
369 if (isINVALID(julianCentury
)) {
370 julianCentury
= (getJulianDay() - 2415020.0) / 36525.0;
372 return julianCentury
;
376 * Returns the current Greenwich sidereal time, measured in hours
378 * @deprecated ICU 2.4. This class may be removed or modified.
380 double CalendarAstronomer::getGreenwichSidereal() {
381 if (isINVALID(siderealTime
)) {
382 // See page 86 of "Practical Astronomy with your Calculator",
383 // by Peter Duffet-Smith, for details on the algorithm.
385 double UT
= normalize(fTime
/(double)HOUR_MS
, 24.);
387 siderealTime
= normalize(getSiderealOffset() + UT
*1.002737909, 24.);
392 double CalendarAstronomer::getSiderealOffset() {
393 if (isINVALID(siderealT0
)) {
394 double JD
= uprv_floor(getJulianDay() - 0.5) + 0.5;
395 double S
= JD
- 2451545.0;
396 double T
= S
/ 36525.0;
397 siderealT0
= normalize(6.697374558 + 2400.051336*T
+ 0.000025862*T
*T
, 24);
403 * Returns the current local sidereal time, measured in hours
405 * @deprecated ICU 2.4. This class may be removed or modified.
407 double CalendarAstronomer::getLocalSidereal() {
408 return normalize(getGreenwichSidereal() + (fGmtOffset
/(double)HOUR_MS
), 24.);
412 * Converts local sidereal time to Universal Time.
414 * @param lst The Local Sidereal Time, in hours since sidereal midnight
415 * on this object's current date.
417 * @return The corresponding Universal Time, in milliseconds since
420 double CalendarAstronomer::lstToUT(double lst
) {
421 // Convert to local mean time
422 double lt
= normalize((lst
- getSiderealOffset()) * 0.9972695663, 24);
424 // Then find local midnight on this day
425 double base
= (DAY_MS
* ClockMath::floorDivide(fTime
+ fGmtOffset
,(double)DAY_MS
)) - fGmtOffset
;
427 //out(" lt =" + lt + " hours");
428 //out(" base=" + new Date(base));
430 return base
+ (long)(lt
* HOUR_MS
);
434 //-------------------------------------------------------------------------
435 // Coordinate transformations, all based on the current time of this object
436 //-------------------------------------------------------------------------
439 * Convert from ecliptic to equatorial coordinates.
441 * @param ecliptic A point in the sky in ecliptic coordinates.
442 * @return The corresponding point in equatorial coordinates.
444 * @deprecated ICU 2.4. This class may be removed or modified.
446 CalendarAstronomer::Equatorial
& CalendarAstronomer::eclipticToEquatorial(CalendarAstronomer::Equatorial
& result
, const CalendarAstronomer::Ecliptic
& ecliptic
)
448 return eclipticToEquatorial(result
, ecliptic
.longitude
, ecliptic
.latitude
);
452 * Convert from ecliptic to equatorial coordinates.
454 * @param eclipLong The ecliptic longitude
455 * @param eclipLat The ecliptic latitude
457 * @return The corresponding point in equatorial coordinates.
459 * @deprecated ICU 2.4. This class may be removed or modified.
461 CalendarAstronomer::Equatorial
& CalendarAstronomer::eclipticToEquatorial(CalendarAstronomer::Equatorial
& result
, double eclipLong
, double eclipLat
)
463 // See page 42 of "Practical Astronomy with your Calculator",
464 // by Peter Duffet-Smith, for details on the algorithm.
466 double obliq
= eclipticObliquity();
467 double sinE
= ::sin(obliq
);
468 double cosE
= cos(obliq
);
470 double sinL
= ::sin(eclipLong
);
471 double cosL
= cos(eclipLong
);
473 double sinB
= ::sin(eclipLat
);
474 double cosB
= cos(eclipLat
);
475 double tanB
= tan(eclipLat
);
477 result
.set(atan2(sinL
*cosE
- tanB
*sinE
, cosL
),
478 asin(sinB
*cosE
+ cosB
*sinE
*sinL
) );
483 * Convert from ecliptic longitude to equatorial coordinates.
485 * @param eclipLong The ecliptic longitude
487 * @return The corresponding point in equatorial coordinates.
489 * @deprecated ICU 2.4. This class may be removed or modified.
491 CalendarAstronomer::Equatorial
& CalendarAstronomer::eclipticToEquatorial(CalendarAstronomer::Equatorial
& result
, double eclipLong
)
493 return eclipticToEquatorial(result
, eclipLong
, 0); // TODO: optimize
498 * @deprecated ICU 2.4. This class may be removed or modified.
500 CalendarAstronomer::Horizon
& CalendarAstronomer::eclipticToHorizon(CalendarAstronomer::Horizon
& result
, double eclipLong
)
502 Equatorial equatorial
;
503 eclipticToEquatorial(equatorial
, eclipLong
);
505 double H
= getLocalSidereal()*CalendarAstronomer::PI
/12 - equatorial
.ascension
; // Hour-angle
507 double sinH
= ::sin(H
);
508 double cosH
= cos(H
);
509 double sinD
= ::sin(equatorial
.declination
);
510 double cosD
= cos(equatorial
.declination
);
511 double sinL
= ::sin(fLatitude
);
512 double cosL
= cos(fLatitude
);
514 double altitude
= asin(sinD
*sinL
+ cosD
*cosL
*cosH
);
515 double azimuth
= atan2(-cosD
*cosL
*sinH
, sinD
- sinL
* ::sin(altitude
));
517 result
.set(azimuth
, altitude
);
522 //-------------------------------------------------------------------------
524 //-------------------------------------------------------------------------
527 // Parameters of the Sun's orbit as of the epoch Jan 0.0 1990
528 // Angles are in radians (after multiplying by CalendarAstronomer::PI/180)
530 #define JD_EPOCH 2447891.5 // Julian day of epoch
532 #define SUN_ETA_G (279.403303 * CalendarAstronomer::PI/180) // Ecliptic longitude at epoch
533 #define SUN_OMEGA_G (282.768422 * CalendarAstronomer::PI/180) // Ecliptic longitude of perigee
534 #define SUN_E 0.016713 // Eccentricity of orbit
535 //double sunR0 1.495585e8 // Semi-major axis in KM
536 //double sunTheta0 (0.533128 * CalendarAstronomer::PI/180) // Angular diameter at R0
538 // winter solstice moon date/times 1900-2100 (in UTC)
539 // These are in UDate/10000.0 (i.e. in units of 10 seconds) to fit into 32 bits.
541 // http://www.timeanddate.com/calendar/seasons.html?year=1900&n=0
542 // http://astropixels.com/ephemeris/soleq2001.html
543 // These 2 tables are just 808 bytes each but but greatly improve both the
544 // accuracy (and speed for one) of the relevant methods for the relevant time range.
546 // before fix, errors of up to +73 / -101 min or more; after, errors always less than 1 min.
547 // about 17 times faster with the fix.
548 // For getSunLongitude:
549 // before fix, only accurate to about 0.07 degree; this was enough so Chinese calendar
550 // calculations were off by a month in some cases.
551 // after fix, about 100 times more accurate.
552 // speed is about the same.
553 static const int32_t winterSolsticeDates
[] = {
555 -220984944, // 1899 Dec 22, 00:56
556 -217829274, // 1900 Dec 22, 06:41
557 -214673538, // 1901 Dec 22, 12:37
558 -211517790, // 1902 Dec 22, 18:35
559 -208362120, // 1903 Dec 23, 00:20
560 -205206396, // 1904 Dec 22, 06:14
561 -202050696, // 1905 Dec 22, 12:04
562 -198895002, // 1906 Dec 22, 17:53
563 -195739254, // 1907 Dec 22, 23:51
564 -192583602, // 1908 Dec 22, 05:33
565 -189427920, // 1909 Dec 22, 11:20
566 -186272208, // 1910 Dec 22, 17:12
567 -183116562, // 1911 Dec 22, 22:53
568 -179960850, // 1912 Dec 22, 04:45
569 -176805150, // 1913 Dec 22, 10:35
570 -173649468, // 1914 Dec 22, 16:22
571 -170493744, // 1915 Dec 22, 22:16
572 -167338086, // 1916 Dec 22, 03:59
573 -164182404, // 1917 Dec 22, 09:46
574 -161026674, // 1918 Dec 22, 15:41
575 -157870998, // 1919 Dec 22, 21:27
576 -154715298, // 1920 Dec 22, 03:17
577 -151559592, // 1921 Dec 22, 09:08
578 -148403898, // 1922 Dec 22, 14:57
579 -145248162, // 1923 Dec 22, 20:53
580 -142092450, // 1924 Dec 22, 02:45
581 -138936738, // 1925 Dec 22, 08:37
582 -135781002, // 1926 Dec 22, 14:33
583 -132625332, // 1927 Dec 22, 20:18
584 -129469656, // 1928 Dec 22, 02:04
585 -126313962, // 1929 Dec 22, 07:53
586 -123158286, // 1930 Dec 22, 13:39
587 -120002586, // 1931 Dec 22, 19:29
588 -116846916, // 1932 Dec 22, 01:14
589 -113691252, // 1933 Dec 22, 06:58
590 -110535546, // 1934 Dec 22, 12:49
591 -107379858, // 1935 Dec 22, 18:37
592 -104224158, // 1936 Dec 22, 00:27
593 -101068428, // 1937 Dec 22, 06:22
594 -97912722, // 1938 Dec 22, 12:13
595 -94757004, // 1939 Dec 22, 18:06
596 -91601310, // 1940 Dec 21, 23:55
597 -88445616, // 1941 Dec 22, 05:44
598 -85289886, // 1942 Dec 22, 11:39
599 -82134186, // 1943 Dec 22, 17:29
600 -78978510, // 1944 Dec 21, 23:15
601 -75822822, // 1945 Dec 22, 05:03
602 -72667122, // 1946 Dec 22, 10:53
603 -69511422, // 1947 Dec 22, 16:43
604 -66355722, // 1948 Dec 21, 22:33
605 -63200022, // 1949 Dec 22, 04:23
606 -60044322, // 1950 Dec 22, 10:13
607 -56888640, // 1951 Dec 22, 16:00
608 -53732982, // 1952 Dec 21, 21:43
609 -50577294, // 1953 Dec 22, 03:31
610 -47421576, // 1954 Dec 22, 09:24
611 -44265894, // 1955 Dec 22, 15:11
612 -41110200, // 1956 Dec 21, 21:00
613 -37954506, // 1957 Dec 22, 02:49
614 -34798800, // 1958 Dec 22, 08:40
615 -31643076, // 1959 Dec 22, 14:34
616 -28487364, // 1960 Dec 21, 20:26
617 -25331646, // 1961 Dec 22, 02:19
618 -22175910, // 1962 Dec 22, 08:15
619 -19020228, // 1963 Dec 22, 14:02
620 -15864546, // 1964 Dec 21, 19:49
621 -12708840, // 1965 Dec 22, 01:40
622 -9553152, // 1966 Dec 22, 07:28
623 -6397464, // 1967 Dec 22, 13:16
624 -3241800, // 1968 Dec 21, 19:00
625 -86136, // 1969 Dec 22, 00:44
626 3069576, // 1970 Dec 22, 06:36
627 6225264, // 1971 Dec 22, 12:24
628 9380958, // 1972 Dec 21, 18:13
629 12536688, // 1973 Dec 22, 00:08
630 15692376, // 1974 Dec 22, 05:56
631 18848070, // 1975 Dec 22, 11:45
632 22003770, // 1976 Dec 21, 17:35
633 25159458, // 1977 Dec 21, 23:23
634 28315206, // 1978 Dec 22, 05:21
635 31470900, // 1979 Dec 22, 11:10
636 34626576, // 1980 Dec 21, 16:56
637 37782306, // 1981 Dec 21, 22:51
638 40937988, // 1982 Dec 22, 04:38
639 44093700, // 1983 Dec 22, 10:30
640 47249418, // 1984 Dec 21, 16:23
641 50405088, // 1985 Dec 21, 22:08
642 53560812, // 1986 Dec 22, 04:02
643 56716476, // 1987 Dec 22, 09:46
644 59872128, // 1988 Dec 21, 15:28
645 63027852, // 1989 Dec 21, 21:22
646 66183522, // 1990 Dec 22, 03:07
647 69339198, // 1991 Dec 22, 08:53
648 72494898, // 1992 Dec 21, 14:43
649 75650556, // 1993 Dec 21, 20:26
650 78806298, // 1994 Dec 22, 02:23
651 81962022, // 1995 Dec 22, 08:17
652 85117716, // 1996 Dec 21, 14:06
653 88273482, // 1997 Dec 21, 20:07
654 91429176, // 1998 Dec 22, 01:56
655 94584864, // 1999 Dec 22, 07:44
656 97740588, // 2000 Dec 21, 13:38
657 100896246, // 2001 Dec 21, 19:21
658 104051964, // 2002 Dec 22, 01:14
659 107207664, // 2003 Dec 22, 07:04
660 110363292, // 2004 Dec 21, 12:42
661 113519010, // 2005 Dec 21, 18:35
662 116674692, // 2006 Dec 22, 00:22
663 119830362, // 2007 Dec 22, 06:07
664 122986104, // 2008 Dec 21, 12:04
665 126141762, // 2009 Dec 21, 17:47
666 129297468, // 2010 Dec 21, 23:38
667 132453180, // 2011 Dec 22, 05:30
668 135608832, // 2012 Dec 21, 11:12
669 138764586, // 2013 Dec 21, 17:11
670 141920298, // 2014 Dec 21, 23:03
671 145075968, // 2015 Dec 22, 04:48
672 148231704, // 2016 Dec 21, 10:44
673 151387368, // 2017 Dec 21, 16:28
674 154543092, // 2018 Dec 21, 22:22
675 157698834, // 2019 Dec 22, 04:19
676 160854492, // 2020 Dec 21, 10:02
677 164010234, // 2021 Dec 21, 15:59
678 167165928, // 2022 Dec 21, 21:48
679 170321562, // 2023 Dec 22, 03:27
680 173477280, // 2024 Dec 21, 09:20
681 176632938, // 2025 Dec 21, 15:03
682 179788620, // 2026 Dec 21, 20:50
683 182944332, // 2027 Dec 22, 02:42
684 186099960, // 2028 Dec 21, 08:20
685 189255684, // 2029 Dec 21, 14:14
686 192411414, // 2030 Dec 21, 20:09
687 195567090, // 2031 Dec 22, 01:55
688 198722856, // 2032 Dec 21, 07:56
689 201878550, // 2033 Dec 21, 13:45
690 205034244, // 2034 Dec 21, 19:34
691 208189986, // 2035 Dec 22, 01:31
692 211345638, // 2036 Dec 21, 07:13
693 214501362, // 2037 Dec 21, 13:07
694 217657092, // 2038 Dec 21, 19:02
695 220812720, // 2039 Dec 22, 00:40
696 223968438, // 2040 Dec 21, 06:33
697 227124108, // 2041 Dec 21, 12:18
698 230279784, // 2042 Dec 21, 18:04
699 233435526, // 2043 Dec 22, 00:01
700 236591184, // 2044 Dec 21, 05:44
701 239746890, // 2045 Dec 21, 11:35
702 242902608, // 2046 Dec 21, 17:28
703 246058242, // 2047 Dec 21, 23:07
704 249213972, // 2048 Dec 21, 05:02
705 252369672, // 2049 Dec 21, 10:52
706 255525348, // 2050 Dec 21, 16:38
707 258681078, // 2051 Dec 21, 22:33
708 261836742, // 2052 Dec 21, 04:17
709 264992454, // 2053 Dec 21, 10:09
710 268148214, // 2054 Dec 21, 16:09
711 271303890, // 2055 Dec 21, 21:55
712 274459626, // 2056 Dec 21, 03:51
713 277615332, // 2057 Dec 21, 09:42
714 280770990, // 2058 Dec 21, 15:25
715 283926708, // 2059 Dec 21, 21:18
716 287082366, // 2060 Dec 21, 03:01
717 290238048, // 2061 Dec 21, 08:48
718 293393772, // 2062 Dec 21, 14:42
719 296549406, // 2063 Dec 21, 20:21
720 299705088, // 2064 Dec 21, 02:08
721 302860800, // 2065 Dec 21, 08:00
722 306016470, // 2066 Dec 21, 13:45
723 309172218, // 2067 Dec 21, 19:43
724 312327912, // 2068 Dec 21, 01:32
725 315483612, // 2069 Dec 21, 07:22
726 318639354, // 2070 Dec 21, 13:19
727 321795018, // 2071 Dec 21, 19:03
728 324950736, // 2072 Dec 21, 00:56
729 328106460, // 2073 Dec 21, 06:50
730 331262130, // 2074 Dec 21, 12:35
731 334417842, // 2075 Dec 21, 18:27
732 337573518, // 2076 Dec 21, 00:13
733 340729200, // 2077 Dec 21, 06:00
734 343884942, // 2078 Dec 21, 11:57
735 347040624, // 2079 Dec 21, 17:44
736 350196312, // 2080 Dec 20, 23:32
737 353352012, // 2081 Dec 21, 05:22
738 356507664, // 2082 Dec 21, 11:04
739 359663358, // 2083 Dec 21, 16:53
740 362819046, // 2084 Dec 20, 22:41
741 365974728, // 2085 Dec 21, 04:28
742 369130452, // 2086 Dec 21, 10:22
743 372286128, // 2087 Dec 21, 16:08
744 375441816, // 2088 Dec 20, 21:56
745 378597552, // 2089 Dec 21, 03:52
746 381753258, // 2090 Dec 21, 09:43
747 384908988, // 2091 Dec 21, 15:38
748 388064706, // 2092 Dec 20, 21:31
749 391220400, // 2093 Dec 21, 03:20
750 394376118, // 2094 Dec 21, 09:13
751 397531800, // 2095 Dec 21, 15:00
752 400687476, // 2096 Dec 20, 20:46
753 403843176, // 2097 Dec 21, 02:36
754 406998840, // 2098 Dec 21, 08:20
755 410154504, // 2099 Dec 21, 14:04
756 413310186, // 2100 Dec 21, 19:51
758 enum { kWinterSolsticeDatesCount
= sizeof(winterSolsticeDates
)/sizeof(winterSolsticeDates
[0]) };
760 static const UDate winterSolsticeDatesFirst
= 10000.0 * -220984944; // winterSolsticeDates[0];
761 static const UDate winterSolsticeDatesLast
= 10000.0 * 413310186; // winterSolsticeDates[kWinterSolsticeDatesCount-1];
762 static const UDate winterSolsticeDatesRange
= 10000.0 * (413310186 + 220984944); // winterSolsticeDatesLast - winterSolsticeDatesFirst;
764 static const int8_t sunLongitudeAdjustmts
[][4] = {
765 // adjustments x 100000 for
766 // computed solar longitudes
767 // (in radians) at times
768 // corresponding to actual
769 // longitudes (degrees) of
770 // 270 0 90 180 for 12 months from
771 // --- --- --- --- ------------------
772 { 85, 25, -89, -32 }, // 1899 Dec 22, 00:56
773 { 90, 30, -88, -33 }, // 1900 Dec 22, 06:41
774 { 81, 26, -86, -29 }, // 1901 Dec 22, 12:37
775 { 69, 14, -87, -30 }, // 1902 Dec 22, 18:35
776 { 74, 21, -84, -38 }, // 1903 Dec 23, 00:20
777 { 68, 7, -98, -40 }, // 1904 Dec 22, 06:14
778 { 66, 0, -100, -35 }, // 1905 Dec 22, 12:04
779 { 66, 10, -91, -41 }, // 1906 Dec 22, 17:53
780 { 54, 3, -100, -42 }, // 1907 Dec 22, 23:51
781 { 63, 7, -97, -40 }, // 1908 Dec 22, 05:33
782 { 65, 6, -90, -36 }, // 1909 Dec 22, 11:20
783 { 61, 3, -88, -33 }, // 1910 Dec 22, 17:12
784 { 70, 20, -79, -36 }, // 1911 Dec 22, 22:53
785 { 66, 19, -84, -31 }, // 1912 Dec 22, 04:45
786 { 65, 14, -80, -22 }, // 1913 Dec 22, 10:35
787 { 67, 25, -64, -24 }, // 1914 Dec 22, 16:22
788 { 61, 16, -71, -26 }, // 1915 Dec 22, 22:16
789 { 68, 14, -72, -22 }, // 1916 Dec 22, 03:59
790 { 70, 15, -68, -19 }, // 1917 Dec 22, 09:46
791 { 62, 9, -74, -20 }, // 1918 Dec 22, 15:41
792 { 66, 20, -71, -24 }, // 1919 Dec 22, 21:27
793 { 64, 16, -80, -28 }, // 1920 Dec 22, 03:17
794 { 61, 6, -82, -29 }, // 1921 Dec 22, 09:08
795 { 61, 15, -67, -34 }, // 1922 Dec 22, 14:57
796 { 52, 12, -76, -43 }, // 1923 Dec 22, 20:53
797 { 48, 8, -78, -37 }, // 1924 Dec 22, 02:45
798 { 44, 8, -68, -32 }, // 1925 Dec 22, 08:37
799 { 35, -2, -72, -33 }, // 1926 Dec 22, 14:33
800 { 40, 2, -67, -32 }, // 1927 Dec 22, 20:18
801 { 43, 0, -74, -30 }, // 1928 Dec 22, 02:04
802 { 43, -6, -78, -24 }, // 1929 Dec 22, 07:53
803 { 46, 7, -62, -22 }, // 1930 Dec 22, 13:39
804 { 45, 8, -69, -27 }, // 1931 Dec 22, 19:29
805 { 49, 7, -69, -23 }, // 1932 Dec 22, 01:14
806 { 55, 13, -54, -17 }, // 1933 Dec 22, 06:58
807 { 52, 10, -56, -22 }, // 1934 Dec 22, 12:49
808 { 53, 22, -49, -21 }, // 1935 Dec 22, 18:37
809 { 52, 23, -52, -19 }, // 1936 Dec 22, 00:27
810 { 44, 12, -54, -17 }, // 1937 Dec 22, 06:22
811 { 41, 16, -40, -18 }, // 1938 Dec 22, 12:13
812 { 36, 8, -49, -26 }, // 1939 Dec 22, 18:06
813 { 36, 0, -59, -25 }, // 1940 Dec 21, 23:55
814 { 35, -2, -52, -20 }, // 1941 Dec 22, 05:44
815 { 28, -7, -60, -26 }, // 1942 Dec 22, 11:39
816 { 26, -2, -62, -27 }, // 1943 Dec 22, 17:29
817 { 30, -2, -63, -28 }, // 1944 Dec 21, 23:15
818 { 31, -11, -68, -30 }, // 1945 Dec 22, 05:03
819 { 29, -1, -51, -29 }, // 1946 Dec 22, 10:53
820 { 27, 4, -55, -34 }, // 1947 Dec 22, 16:43
821 { 26, 1, -59, -29 }, // 1948 Dec 21, 22:33
822 { 24, 3, -40, -16 }, // 1949 Dec 22, 04:23
823 { 23, 1, -41, -21 }, // 1950 Dec 22, 10:13
824 { 25, 3, -40, -19 }, // 1951 Dec 22, 16:00
825 { 32, 4, -38, -11 }, // 1952 Dec 21, 21:43
826 { 33, 0, -44, -12 }, // 1953 Dec 22, 03:31
827 { 28, 8, -31, -8 }, // 1954 Dec 22, 09:24
828 { 30, 11, -35, -14 }, // 1955 Dec 22, 15:11
829 { 30, 4, -45, -17 }, // 1956 Dec 21, 21:00
830 { 29, 4, -30, -10 }, // 1957 Dec 22, 02:49
831 { 27, 2, -35, -22 }, // 1958 Dec 22, 08:40
832 { 20, 3, -39, -25 }, // 1959 Dec 22, 14:34
833 { 16, 3, -38, -18 }, // 1960 Dec 21, 20:26
834 { 11, -6, -44, -24 }, // 1961 Dec 22, 02:19
835 { 2, -9, -34, -23 }, // 1962 Dec 22, 08:15
836 { 4, -10, -39, -28 }, // 1963 Dec 22, 14:02
837 { 6, -18, -50, -29 }, // 1964 Dec 21, 19:49
838 { 4, -16, -37, -15 }, // 1965 Dec 22, 01:40
839 { 4, -11, -38, -22 }, // 1966 Dec 22, 07:28
840 { 5, -7, -40, -21 }, // 1967 Dec 22, 13:16
841 { 11, -4, -32, -12 }, // 1968 Dec 21, 19:00
842 { 17, -3, -31, -16 }, // 1969 Dec 22, 00:44
843 { 13, 5, -16, -13 }, // 1970 Dec 22, 06:36
844 { 14, 11, -14, -12 }, // 1971 Dec 22, 12:24
845 { 14, 9, -21, -11 }, // 1972 Dec 21, 18:13
846 { 6, 2, -7, 1 }, // 1973 Dec 22, 00:08
847 { 7, 0, -7, -7 }, // 1974 Dec 22, 05:56
848 { 7, -3, -18, -12 }, // 1975 Dec 22, 11:45
849 { 5, -8, -19, -2 }, // 1976 Dec 21, 17:35
850 { 6, -11, -28, -12 }, // 1977 Dec 21, 23:23
851 { -4, -11, -24, -14 }, // 1978 Dec 22, 05:21
852 { -5, -10, -27, -18 }, // 1979 Dec 22, 11:10
853 { -1, -15, -38, -27 }, // 1980 Dec 21, 16:56
854 { -9, -19, -25, -18 }, // 1981 Dec 21, 22:51
855 { -7, -14, -21, -26 }, // 1982 Dec 22, 04:38
856 { -11, -9, -27, -29 }, // 1983 Dec 22, 10:30
857 { -16, -11, -19, -12 }, // 1984 Dec 21, 16:23
858 { -11, -11, -16, -16 }, // 1985 Dec 21, 22:08
859 { -18, -11, -7, -12 }, // 1986 Dec 22, 04:02
860 { -12, -9, -3, -7 }, // 1987 Dec 22, 09:46
861 { -4, -9, -12, -10 }, // 1988 Dec 21, 15:28
862 { -10, -12, -2, 6 }, // 1989 Dec 21, 21:22
863 { -6, -5, 0, 1 }, // 1990 Dec 22, 03:07
864 { -2, -2, -6, -6 }, // 1991 Dec 22, 08:53
865 { -4, -7, -3, 5 }, // 1992 Dec 21, 14:43
866 { 2, -5, -2, -4 }, // 1993 Dec 21, 20:26
867 { -7, -3, 0, -10 }, // 1994 Dec 22, 02:23
868 { -13, -2, 0, -8 }, // 1995 Dec 22, 08:17
869 { -13, -6, -9, -17 }, // 1996 Dec 21, 14:06
870 { -29, -18, -2, -9 }, // 1997 Dec 21, 20:07
871 { -29, -22, 0, -14 }, // 1998 Dec 22, 01:56
872 { -28, -22, -11, -23 }, // 1999 Dec 22, 07:44
873 { -34, -31, -12, -9 }, // 2000 Dec 21, 13:38
874 { -27, -26, -10, -11 }, // 2001 Dec 21, 19:21
875 { -33, -21, -7, -15 }, // 2002 Dec 22, 01:14
876 { -34, -20, -4, -8 }, // 2003 Dec 22, 07:04
877 { -21, -15, -4, -13 }, // 2004 Dec 21, 12:42
878 { -26, -19, 5, -4 }, // 2005 Dec 21, 18:35
879 { -24, -11, 15, -2 }, // 2006 Dec 22, 00:22
880 { -19, -2, 10, -7 }, // 2007 Dec 22, 06:07
881 { -29, -10, 12, 9 }, // 2008 Dec 21, 12:04
882 { -22, -10, 19, 7 }, // 2009 Dec 21, 17:47
883 { -25, -10, 21, 0 }, // 2010 Dec 21, 23:38
884 { -29, -15, 17, 4 }, // 2011 Dec 22, 05:30
885 { -21, -14, 9, -2 }, // 2012 Dec 21, 11:12
886 { -33, -22, 11, 1 }, // 2013 Dec 21, 17:11
887 { -37, -21, 13, 0 }, // 2014 Dec 21, 23:03
888 { -33, -16, 5, -15 }, // 2015 Dec 22, 04:48
889 { -42, -29, 3, -6 }, // 2016 Dec 21, 10:44
890 { -36, -25, 10, -10 }, // 2017 Dec 21, 16:28
891 { -42, -18, 12, -18 }, // 2018 Dec 21, 22:22
892 { -53, -22, 12, -9 }, // 2019 Dec 22, 04:19
893 { -45, -20, 11, -10 }, // 2020 Dec 21, 10:02
894 { -56, -29, 19, -4 }, // 2021 Dec 21, 15:59
895 { -56, -31, 26, 0 }, // 2022 Dec 21, 21:48
896 { -44, -23, 20, -7 }, // 2023 Dec 22, 03:27
897 { -49, -31, 17, 8 }, // 2024 Dec 21, 09:20
898 { -42, -25, 24, 12 }, // 2025 Dec 21, 15:03
899 { -40, -15, 27, 3 }, // 2026 Dec 21, 20:50
900 { -44, -19, 24, 9 }, // 2027 Dec 22, 02:42
901 { -31, -13, 28, 4 }, // 2028 Dec 21, 08:20
902 { -37, -15, 34, 4 }, // 2029 Dec 21, 14:14
903 { -45, -16, 37, 5 }, // 2030 Dec 21, 20:09
904 { -41, -6, 34, -3 }, // 2031 Dec 22, 01:55
905 { -56, -21, 30, 5 }, // 2032 Dec 21, 07:56
906 { -57, -27, 37, 7 }, // 2033 Dec 21, 13:45
907 { -57, -24, 36, -5 }, // 2034 Dec 21, 19:34
908 { -67, -37, 24, -1 }, // 2035 Dec 22, 01:31
909 { -59, -36, 23, -1 }, // 2036 Dec 21, 07:13
910 { -65, -37, 25, -1 }, // 2037 Dec 21, 13:07
911 { -73, -41, 26, 0 }, // 2038 Dec 21, 19:02
912 { -60, -29, 26, -8 }, // 2039 Dec 22, 00:40
913 { -65, -37, 24, 0 }, // 2040 Dec 21, 06:33
914 { -60, -35, 34, 5 }, // 2041 Dec 21, 12:18
915 { -57, -17, 42, -1 }, // 2042 Dec 21, 18:04
916 { -67, -22, 37, 6 }, // 2043 Dec 22, 00:01
917 { -60, -20, 45, 10 }, // 2044 Dec 21, 05:44
918 { -63, -23, 53, 10 }, // 2045 Dec 21, 11:35
919 { -68, -29, 54, 13 }, // 2046 Dec 21, 17:28
920 { -56, -20, 51, 9 }, // 2047 Dec 21, 23:07
921 { -64, -27, 46, 17 }, // 2048 Dec 21, 05:02
922 { -65, -30, 49, 20 }, // 2049 Dec 21, 10:52
923 { -62, -19, 54, 8 }, // 2050 Dec 21, 16:38
924 { -70, -29, 43, 9 }, // 2051 Dec 21, 22:33
925 { -64, -31, 44, 6 }, // 2052 Dec 21, 04:17
926 { -68, -30, 51, 1 }, // 2053 Dec 21, 10:09
927 { -82, -36, 47, 0 }, // 2054 Dec 21, 16:09
928 { -78, -28, 47, -1 }, // 2055 Dec 21, 21:55
929 { -87, -39, 44, 4 }, // 2056 Dec 21, 03:51
930 { -90, -48, 48, 9 }, // 2057 Dec 21, 09:42
931 { -83, -37, 56, 1 }, // 2058 Dec 21, 15:25
932 { -88, -44, 44, 6 }, // 2059 Dec 21, 21:18
933 { -81, -41, 46, 12 }, // 2060 Dec 21, 03:01
934 { -79, -33, 58, 12 }, // 2061 Dec 21, 08:48
935 { -85, -37, 55, 13 }, // 2062 Dec 21, 14:42
936 { -73, -26, 62, 14 }, // 2063 Dec 21, 20:21
937 { -71, -27, 64, 17 }, // 2064 Dec 21, 02:08
938 { -75, -30, 69, 22 }, // 2065 Dec 21, 08:00
939 { -70, -13, 80, 18 }, // 2066 Dec 21, 13:45
940 { -82, -21, 70, 19 }, // 2067 Dec 21, 19:43
941 { -82, -28, 71, 24 }, // 2068 Dec 21, 01:32
942 { -84, -30, 80, 19 }, // 2069 Dec 21, 07:22
943 { -94, -43, 69, 13 }, // 2070 Dec 21, 13:19
944 { -88, -40, 63, 12 }, // 2071 Dec 21, 19:03
945 { -93, -45, 58, 14 }, // 2072 Dec 21, 00:56
946 { -100, -53, 55, 15 }, // 2073 Dec 21, 06:50
947 { -95, -40, 63, 7 }, // 2074 Dec 21, 12:35
948 { -99, -43, 55, 3 }, // 2075 Dec 21, 18:27
949 { -96, -47, 57, 8 }, // 2076 Dec 21, 00:13
950 { -94, -37, 73, 8 }, // 2077 Dec 21, 06:00
951 { -104, -38, 70, 7 }, // 2078 Dec 21, 11:57
952 { -102, -33, 74, 14 }, // 2079 Dec 21, 17:44
953 { -101, -34, 82, 22 }, // 2080 Dec 20, 23:32
954 { -102, -43, 84, 27 }, // 2081 Dec 21, 05:22
955 { -94, -32, 94, 27 }, // 2082 Dec 21, 11:04
956 { -94, -33, 85, 28 }, // 2083 Dec 21, 16:53
957 { -93, -39, 81, 34 }, // 2084 Dec 20, 22:41
958 { -91, -31, 95, 34 }, // 2085 Dec 21, 04:28
959 { -97, -36, 85, 25 }, // 2086 Dec 21, 10:22
960 { -94, -35, 83, 24 }, // 2087 Dec 21, 16:08
961 { -93, -36, 86, 23 }, // 2088 Dec 20, 21:56
962 { -102, -44, 81, 19 }, // 2089 Dec 21, 03:52
963 { -105, -33, 89, 17 }, // 2090 Dec 21, 09:43
964 { -113, -37, 80, 14 }, // 2091 Dec 21, 15:38
965 { -118, -52, 75, 15 }, // 2092 Dec 20, 21:31
966 { -118, -50, 91, 17 }, // 2093 Dec 21, 03:20
967 { -123, -56, 83, 10 }, // 2094 Dec 21, 09:13
968 { -121, -54, 79, 17 }, // 2095 Dec 21, 15:00
969 { -118, -51, 86, 26 }, // 2096 Dec 20, 20:46
970 { -119, -55, 84, 25 }, // 2097 Dec 21, 02:36
971 { -113, -41, 97, 28 }, // 2098 Dec 21, 08:20
972 { -108, -39, 94, 27 }, // 2099 Dec 21, 14:04
973 { -105, 0, 0, 0 }, // 2100 Dec 21, 19:51
976 static const int32_t timeDeltaToSprEquin
= 768903; // avg delta in millis/10000 from winter solstice to spring equinox, within 1 hr
977 static const int32_t timeDeltaToSumSolst
= 1570332; // avg delta in millis/10000 from winter solstice to summer solstice, within 2.7 hrs
978 static const int32_t timeDeltaToAutEquin
= 2379459; // avg delta in millis/10000 from winter solstice to autumn equinox, within 2 hrs
980 // The following three methods, which compute the sun parameters
981 // given above for an arbitrary epoch (whatever time the object is
982 // set to), make only a small difference as compared to using the
983 // above constants. E.g., Sunset times might differ by ~12
984 // seconds. Furthermore, the eta-g computation is befuddled by
985 // Duffet-Smith's incorrect coefficients (p.86). I've corrected
986 // the first-order coefficient but the others may be off too - no
987 // way of knowing without consulting another source.
990 // * Return the sun's ecliptic longitude at perigee for the current time.
991 // * See Duffett-Smith, p. 86.
994 // private double getSunOmegaG() {
995 // double T = getJulianCentury();
996 // return (281.2208444 + (1.719175 + 0.000452778*T)*T) * DEG_RAD;
1000 // * Return the sun's ecliptic longitude for the current time.
1001 // * See Duffett-Smith, p. 86.
1002 // * @return radians
1004 // private double getSunEtaG() {
1005 // double T = getJulianCentury();
1006 // //return (279.6966778 + (36000.76892 + 0.0003025*T)*T) * DEG_RAD;
1008 // // The above line is from Duffett-Smith, and yields manifestly wrong
1009 // // results. The below constant is derived empirically to match the
1010 // // constant he gives for the 1990 EPOCH.
1012 // return (279.6966778 + (-0.3262541582718024 + 0.0003025*T)*T) * DEG_RAD;
1016 // * Return the sun's eccentricity of orbit for the current time.
1017 // * See Duffett-Smith, p. 86.
1020 // private double getSunE() {
1021 // double T = getJulianCentury();
1022 // return 0.01675104 - (0.0000418 + 0.000000126*T)*T;
1026 * Find the "true anomaly" (longitude) of an object from
1027 * its mean anomaly and the eccentricity of its orbit. This uses
1028 * an iterative solution to Kepler's equation.
1030 * @param meanAnomaly The object's longitude calculated as if it were in
1031 * a regular, circular orbit, measured in radians
1032 * from the point of perigee.
1034 * @param eccentricity The eccentricity of the orbit
1036 * @return The true anomaly (longitude) measured in radians
1038 static double trueAnomaly(double meanAnomaly
, double eccentricity
)
1040 // First, solve Kepler's equation iteratively
1041 // Duffett-Smith, p.90
1043 double E
= meanAnomaly
;
1045 delta
= E
- eccentricity
* ::sin(E
) - meanAnomaly
;
1046 E
= E
- delta
/ (1 - eccentricity
* ::cos(E
));
1048 while (uprv_fabs(delta
) > 1e-5); // epsilon = 1e-5 rad
1050 return 2.0 * ::atan( ::tan(E
/2) * ::sqrt( (1+eccentricity
)
1051 /(1-eccentricity
) ) );
1056 * Returns sunLongitude which may be adjusted for correctness
1057 * based on the time, using a table which only has data covering
1058 * gregorian years 1900-2100.
1060 * @param theSunLongitude the sunLongitude to be adjusted if necessary
1061 * @param theTime the time for which the sunLongitude is to be adjusted
1064 double CalendarAstronomer::adjustSunLongitude(double &theSunLongitude
, UDate theTime
)
1066 // apply piecewise linear corrections in the range 1900-2100
1067 if (theTime
>= winterSolsticeDatesFirst
&& theTime
< winterSolsticeDatesLast
) {
1068 int32_t offset
= (int32_t)(((double)kWinterSolsticeDatesCount
)*(theTime
- winterSolsticeDatesFirst
)/winterSolsticeDatesRange
);
1069 const int32_t * winterSolsticeDatesPtr
= winterSolsticeDates
+ offset
; // approximate starting position
1070 int32_t curTime
= (int32_t)(theTime
/10000.0);
1071 while (curTime
< *winterSolsticeDatesPtr
) {
1072 winterSolsticeDatesPtr
--;
1074 while (curTime
>= *(winterSolsticeDatesPtr
+1)) {
1075 winterSolsticeDatesPtr
++;
1077 // curTime is in the 12-month period beginning with *winterSolsticeDatesPtr
1078 offset
= winterSolsticeDatesPtr
- winterSolsticeDates
;
1079 curTime
-= *winterSolsticeDatesPtr
;
1080 double factor
= 0.0;
1081 int32_t adjustForStart
= 0, adjustForEnd
= 0;
1082 if (curTime
< timeDeltaToSumSolst
) {
1083 if (curTime
< timeDeltaToSprEquin
) {
1084 // curTime from winter solstice to before spring equinox
1085 factor
= (double)curTime
/(double)timeDeltaToSprEquin
;
1086 adjustForStart
= sunLongitudeAdjustmts
[offset
][0];
1087 adjustForEnd
= sunLongitudeAdjustmts
[offset
][1];
1089 // curTime from spring equinox to before summer solstice
1090 factor
= (double)(curTime
- timeDeltaToSprEquin
)/(double)(timeDeltaToSumSolst
- timeDeltaToSprEquin
);
1091 adjustForStart
= sunLongitudeAdjustmts
[offset
][1];
1092 adjustForEnd
= sunLongitudeAdjustmts
[offset
][2];
1095 if (curTime
< timeDeltaToAutEquin
) {
1096 // curTime from summer solstice to before autumn equinox
1097 factor
= (double)(curTime
- timeDeltaToSumSolst
)/(double)(timeDeltaToAutEquin
- timeDeltaToSumSolst
);
1098 adjustForStart
= sunLongitudeAdjustmts
[offset
][2];
1099 adjustForEnd
= sunLongitudeAdjustmts
[offset
][3];
1101 // curTime from autumn equinox to before next winter solstice
1102 factor
= (double)(curTime
- timeDeltaToAutEquin
)/(double)(*(winterSolsticeDatesPtr
+1) - *winterSolsticeDatesPtr
- timeDeltaToAutEquin
);
1103 adjustForStart
= sunLongitudeAdjustmts
[offset
][3];
1104 adjustForEnd
= sunLongitudeAdjustmts
[offset
+1][0];
1107 double adjustmt
= ((double)adjustForStart
+ factor
*((double)(adjustForEnd
- adjustForStart
)))/100000.0;
1108 theSunLongitude
+= adjustmt
;
1109 if (theSunLongitude
>= 2*PI
) {
1110 theSunLongitude
-= 2*PI
;
1111 } else if (theSunLongitude
< 0) {
1112 theSunLongitude
+= 2*PI
;
1115 return theSunLongitude
;
1119 * The longitude of the sun at the time specified by theTime.
1120 * This does not result in caching of any of the intermediate computations.
1123 double CalendarAstronomer::getSunLongitudeForTime(UDate theTime
)
1125 double jd
= (theTime
- (double)JULIAN_EPOCH_MS
) / (double)DAY_MS
;
1126 double theSunLongitude
;
1127 double theMeanAnomalySun
;
1129 getSunLongitude(jd
, theSunLongitude
, theMeanAnomalySun
);
1130 return CalendarAstronomer::adjustSunLongitude(theSunLongitude
, theTime
);
1134 * The longitude of the sun at the time specified by this object.
1135 * The longitude is measured in radians along the ecliptic
1136 * from the "first point of Aries," the point at which the ecliptic
1137 * crosses the earth's equatorial plane at the vernal equinox.
1139 * Currently, this method uses an approximation of the two-body Kepler's
1140 * equation for the earth and the sun. It does not take into account the
1141 * perturbations caused by the other planets, the moon, etc.
1143 * @deprecated ICU 2.4. This class may be removed or modified.
1145 double CalendarAstronomer::getSunLongitude()
1147 // See page 86 of "Practical Astronomy with your Calculator",
1148 // by Peter Duffet-Smith, for details on the algorithm.
1150 // Currently this is called externally by ChineseCalendar,
1151 // and internally by getMoonPosition and getSunTime.
1153 if (isINVALID(sunLongitude
)) {
1154 // this sets instance variables julianDay (from fTime), sunLongitude, meanAnomalySun
1155 getSunLongitude(getJulianDay(), sunLongitude
, meanAnomalySun
);
1158 // apply piecewise linear corrections in the range 1900-2100,
1159 // update sunLongitude as necessary
1160 return CalendarAstronomer::adjustSunLongitude(sunLongitude
, fTime
);
1164 * TODO Make this public when the entire class is package-private.
1166 /*public*/ void CalendarAstronomer::getSunLongitude(double jDay
, double &longitude
, double &meanAnomaly
)
1168 // See page 86 of "Practical Astronomy with your Calculator",
1169 // by Peter Duffet-Smith, for details on the algorithm.
1171 double day
= jDay
- JD_EPOCH
; // Days since epoch
1173 // Find the angular distance the sun in a fictitious
1174 // circular orbit has travelled since the epoch.
1175 double epochAngle
= norm2PI(CalendarAstronomer_PI2
/TROPICAL_YEAR
*day
);
1177 // The epoch wasn't at the sun's perigee; find the angular distance
1178 // since perigee, which is called the "mean anomaly"
1179 meanAnomaly
= norm2PI(epochAngle
+ SUN_ETA_G
- SUN_OMEGA_G
);
1181 // Now find the "true anomaly", e.g. the real solar longitude
1182 // by solving Kepler's equation for an elliptical orbit
1183 // NOTE: The 3rd ed. of the book lists omega_g and eta_g in different
1184 // equations; omega_g is to be correct.
1185 longitude
= norm2PI(trueAnomaly(meanAnomaly
, SUN_E
) + SUN_OMEGA_G
);
1189 * The position of the sun at this object's current date and time,
1190 * in equatorial coordinates.
1192 * @deprecated ICU 2.4. This class may be removed or modified.
1194 CalendarAstronomer::Equatorial
& CalendarAstronomer::getSunPosition(CalendarAstronomer::Equatorial
& result
) {
1195 return eclipticToEquatorial(result
, getSunLongitude(), 0);
1200 * Constant representing the vernal equinox.
1201 * For use with {@link #getSunTime getSunTime}.
1202 * Note: In this case, "vernal" refers to the northern hemisphere's seasons.
1204 * @deprecated ICU 2.4. This class may be removed or modified.
1206 /*double CalendarAstronomer::VERNAL_EQUINOX() {
1211 * Constant representing the summer solstice.
1212 * For use with {@link #getSunTime getSunTime}.
1213 * Note: In this case, "summer" refers to the northern hemisphere's seasons.
1215 * @deprecated ICU 2.4. This class may be removed or modified.
1217 double CalendarAstronomer::SUMMER_SOLSTICE() {
1218 return (CalendarAstronomer::PI
/2);
1222 * Constant representing the autumnal equinox.
1223 * For use with {@link #getSunTime getSunTime}.
1224 * Note: In this case, "autumn" refers to the northern hemisphere's seasons.
1226 * @deprecated ICU 2.4. This class may be removed or modified.
1228 /*double CalendarAstronomer::AUTUMN_EQUINOX() {
1229 return (CalendarAstronomer::PI);
1233 * Constant representing the winter solstice.
1234 * For use with {@link #getSunTime getSunTime}.
1235 * Note: In this case, "winter" refers to the northern hemisphere's seasons.
1237 * @deprecated ICU 2.4. This class may be removed or modified.
1239 double CalendarAstronomer::WINTER_SOLSTICE() {
1240 return ((CalendarAstronomer::PI
*3)/2);
1243 CalendarAstronomer::AngleFunc::~AngleFunc() {}
1246 * Find the next time at which the sun's ecliptic longitude will have
1247 * the desired value.
1249 * @deprecated ICU 2.4. This class may be removed or modified.
1251 class SunTimeAngleFunc
: public CalendarAstronomer::AngleFunc
{
1253 virtual ~SunTimeAngleFunc();
1254 virtual double eval(CalendarAstronomer
& a
) { return a
.getSunLongitude(); }
1257 SunTimeAngleFunc::~SunTimeAngleFunc() {}
1259 UDate
CalendarAstronomer::getSunTime(double desired
, UBool next
)
1261 // Currently, the only client is ChineseCalendar, which calls
1262 // this with desired == CalendarAstronomer::WINTER_SOLSTICE()
1263 if (desired
== CalendarAstronomer::WINTER_SOLSTICE() && fTime
>= winterSolsticeDatesFirst
&& fTime
< winterSolsticeDatesLast
) {
1264 int32_t offset
= (int32_t)(((double)kWinterSolsticeDatesCount
)*(fTime
- winterSolsticeDatesFirst
)/winterSolsticeDatesRange
);
1265 const int32_t * winterSolsticeDatesPtr
= winterSolsticeDates
+ offset
; // approximate starting position
1266 int32_t curTime
= (int32_t)(fTime
/10000.0);
1267 while (curTime
< *winterSolsticeDatesPtr
) {
1268 winterSolsticeDatesPtr
--;
1270 while (curTime
>= *(winterSolsticeDatesPtr
+1)) {
1271 winterSolsticeDatesPtr
++;
1274 winterSolsticeDatesPtr
++;
1276 return 10000.0 * (UDate
)(*winterSolsticeDatesPtr
);
1279 SunTimeAngleFunc func
;
1280 return timeOfAngle( func
,
1287 CalendarAstronomer::CoordFunc::~CoordFunc() {}
1289 class RiseSetCoordFunc
: public CalendarAstronomer::CoordFunc
{
1291 virtual ~RiseSetCoordFunc();
1292 virtual void eval(CalendarAstronomer::Equatorial
& result
, CalendarAstronomer
&a
) { a
.getSunPosition(result
); }
1295 RiseSetCoordFunc::~RiseSetCoordFunc() {}
1297 UDate
CalendarAstronomer::getSunRiseSet(UBool rise
)
1301 // Make a rough guess: 6am or 6pm local time on the current day
1302 double noon
= ClockMath::floorDivide(fTime
+ fGmtOffset
, (double)DAY_MS
)*DAY_MS
- fGmtOffset
+ (12*HOUR_MS
);
1304 U_DEBUG_ASTRO_MSG(("Noon=%.2lf, %sL, gmtoff %.2lf\n", noon
, debug_astro_date(noon
+fGmtOffset
), fGmtOffset
));
1305 setTime(noon
+ ((rise
? -6 : 6) * HOUR_MS
));
1306 U_DEBUG_ASTRO_MSG(("added %.2lf ms as a guess,\n", ((rise
? -6. : 6.) * HOUR_MS
)));
1308 RiseSetCoordFunc func
;
1309 double t
= riseOrSet(func
,
1311 .533 * DEG_RAD
, // Angular Diameter
1312 34. /60.0 * DEG_RAD
, // Refraction correction
1313 MINUTE_MS
/ 12.); // Desired accuracy
1319 // Commented out - currently unused. ICU 2.6, Alan
1320 // //-------------------------------------------------------------------------
1321 // // Alternate Sun Rise/Set
1322 // // See Duffett-Smith p.93
1323 // //-------------------------------------------------------------------------
1325 // // This yields worse results (as compared to USNO data) than getSunRiseSet().
1327 // * TODO Make this when the entire class is package-private.
1329 // /*public*/ long getSunRiseSet2(boolean rise) {
1330 // // 1. Calculate coordinates of the sun's center for midnight
1331 // double jd = uprv_floor(getJulianDay() - 0.5) + 0.5;
1332 // double[] sl = getSunLongitude(jd);// double lambda1 = sl[0];
1333 // Equatorial pos1 = eclipticToEquatorial(lambda1, 0);
1335 // // 2. Add ... to lambda to get position 24 hours later
1336 // double lambda2 = lambda1 + 0.985647*DEG_RAD;
1337 // Equatorial pos2 = eclipticToEquatorial(lambda2, 0);
1339 // // 3. Calculate LSTs of rising and setting for these two positions
1340 // double tanL = ::tan(fLatitude);
1341 // double H = ::acos(-tanL * ::tan(pos1.declination));
1342 // double lst1r = (CalendarAstronomer_PI2 + pos1.ascension - H) * 24 / CalendarAstronomer_PI2;
1343 // double lst1s = (pos1.ascension + H) * 24 / CalendarAstronomer_PI2;
1344 // H = ::acos(-tanL * ::tan(pos2.declination));
1345 // double lst2r = (CalendarAstronomer_PI2-H + pos2.ascension ) * 24 / CalendarAstronomer_PI2;
1346 // double lst2s = (H + pos2.ascension ) * 24 / CalendarAstronomer_PI2;
1347 // if (lst1r > 24) lst1r -= 24;
1348 // if (lst1s > 24) lst1s -= 24;
1349 // if (lst2r > 24) lst2r -= 24;
1350 // if (lst2s > 24) lst2s -= 24;
1352 // // 4. Convert LSTs to GSTs. If GST1 > GST2, add 24 to GST2.
1353 // double gst1r = lstToGst(lst1r);
1354 // double gst1s = lstToGst(lst1s);
1355 // double gst2r = lstToGst(lst2r);
1356 // double gst2s = lstToGst(lst2s);
1357 // if (gst1r > gst2r) gst2r += 24;
1358 // if (gst1s > gst2s) gst2s += 24;
1360 // // 5. Calculate GST at 0h UT of this date
1361 // double t00 = utToGst(0);
1363 // // 6. Calculate GST at 0h on the observer's longitude
1364 // double offset = ::round(fLongitude*12/PI); // p.95 step 6; he _rounds_ to nearest 15 deg.
1365 // double t00p = t00 - offset*1.002737909;
1366 // if (t00p < 0) t00p += 24; // do NOT normalize
1369 // if (gst1r < t00p) {
1373 // if (gst1s < t00p) {
1379 // double gstr = (24.07*gst1r-t00*(gst2r-gst1r))/(24.07+gst1r-gst2r);
1380 // double gsts = (24.07*gst1s-t00*(gst2s-gst1s))/(24.07+gst1s-gst2s);
1382 // // 9. Correct for parallax, refraction, and sun's diameter
1383 // double dec = (pos1.declination + pos2.declination) / 2;
1384 // double psi = ::acos(sin(fLatitude) / cos(dec));
1385 // double x = 0.830725 * DEG_RAD; // parallax+refraction+diameter
1386 // double y = ::asin(sin(x) / ::sin(psi)) * RAD_DEG;
1387 // double delta_t = 240 * y / cos(dec) / 3600; // hours
1389 // // 10. Add correction to GSTs, subtract from GSTr
1393 // // 11. Convert GST to UT and then to local civil time
1394 // double ut = gstToUt(rise ? gstr : gsts);
1395 // //System.out.println((rise?"rise=":"set=") + ut + ", delta_t=" + delta_t);
1396 // long midnight = DAY_MS * (time / DAY_MS); // Find UT midnight on this day
1397 // return midnight + (long) (ut * 3600000);
1400 // Commented out - currently unused. ICU 2.6, Alan
1402 // * Convert local sidereal time to Greenwich sidereal time.
1403 // * Section 15. Duffett-Smith p.21
1404 // * @param lst in hours (0..24)
1405 // * @return GST in hours (0..24)
1407 // double lstToGst(double lst) {
1408 // double delta = fLongitude * 24 / CalendarAstronomer_PI2;
1409 // return normalize(lst - delta, 24);
1412 // Commented out - currently unused. ICU 2.6, Alan
1414 // * Convert UT to GST on this date.
1415 // * Section 12. Duffett-Smith p.17
1416 // * @param ut in hours
1417 // * @return GST in hours
1419 // double utToGst(double ut) {
1420 // return normalize(getT0() + ut*1.002737909, 24);
1423 // Commented out - currently unused. ICU 2.6, Alan
1425 // * Convert GST to UT on this date.
1426 // * Section 13. Duffett-Smith p.18
1427 // * @param gst in hours
1428 // * @return UT in hours
1430 // double gstToUt(double gst) {
1431 // return normalize(gst - getT0(), 24) * 0.9972695663;
1434 // Commented out - currently unused. ICU 2.6, Alan
1436 // // Common computation for UT <=> GST
1438 // // Find JD for 0h UT
1439 // double jd = uprv_floor(getJulianDay() - 0.5) + 0.5;
1441 // double s = jd - 2451545.0;
1442 // double t = s / 36525.0;
1443 // double t0 = 6.697374558 + (2400.051336 + 0.000025862*t)*t;
1447 // Commented out - currently unused. ICU 2.6, Alan
1448 // //-------------------------------------------------------------------------
1449 // // Alternate Sun Rise/Set
1450 // // See sci.astro FAQ
1451 // // http://www.faqs.org/faqs/astronomy/faq/part3/section-5.html
1452 // //-------------------------------------------------------------------------
1454 // // Note: This method appears to produce inferior accuracy as
1455 // // compared to getSunRiseSet().
1458 // * TODO Make this when the entire class is package-private.
1460 // /*public*/ long getSunRiseSet3(boolean rise) {
1462 // // Compute day number for 0.0 Jan 2000 epoch
1463 // double d = (double)(time - EPOCH_2000_MS) / DAY_MS;
1465 // // Now compute the Local Sidereal Time, LST:
1467 // double LST = 98.9818 + 0.985647352 * d + /*UT*15 + long*/
1468 // fLongitude*RAD_DEG;
1470 // // (east long. positive). Note that LST is here expressed in degrees,
1471 // // where 15 degrees corresponds to one hour. Since LST really is an angle,
1472 // // it's convenient to use one unit---degrees---throughout.
1474 // // COMPUTING THE SUN'S POSITION
1475 // // ----------------------------
1477 // // To be able to compute the Sun's rise/set times, you need to be able to
1478 // // compute the Sun's position at any time. First compute the "day
1479 // // number" d as outlined above, for the desired moment. Next compute:
1481 // double oblecl = 23.4393 - 3.563E-7 * d;
1483 // double w = 282.9404 + 4.70935E-5 * d;
1484 // double M = 356.0470 + 0.9856002585 * d;
1485 // double e = 0.016709 - 1.151E-9 * d;
1487 // // This is the obliquity of the ecliptic, plus some of the elements of
1488 // // the Sun's apparent orbit (i.e., really the Earth's orbit): w =
1489 // // argument of perihelion, M = mean anomaly, e = eccentricity.
1490 // // Semi-major axis is here assumed to be exactly 1.0 (while not strictly
1491 // // true, this is still an accurate approximation). Next compute E, the
1492 // // eccentric anomaly:
1494 // double E = M + e*(180/PI) * ::sin(M*DEG_RAD) * ( 1.0 + e*cos(M*DEG_RAD) );
1496 // // where E and M are in degrees. This is it---no further iterations are
1497 // // needed because we know e has a sufficiently small value. Next compute
1498 // // the true anomaly, v, and the distance, r:
1500 // /* r * cos(v) = */ double A = cos(E*DEG_RAD) - e;
1501 // /* r * ::sin(v) = */ double B = ::sqrt(1 - e*e) * ::sin(E*DEG_RAD);
1505 // // r = sqrt( A*A + B*B )
1506 // double v = ::atan2( B, A )*RAD_DEG;
1508 // // The Sun's true longitude, slon, can now be computed:
1510 // double slon = v + w;
1512 // // Since the Sun is always at the ecliptic (or at least very very close to
1513 // // it), we can use simplified formulae to convert slon (the Sun's ecliptic
1514 // // longitude) to sRA and sDec (the Sun's RA and Dec):
1516 // // ::sin(slon) * cos(oblecl)
1517 // // tan(sRA) = -------------------------
1520 // // ::sin(sDec) = ::sin(oblecl) * ::sin(slon)
1522 // // As was the case when computing az, the Azimuth, if possible use an
1523 // // atan2() function to compute sRA.
1525 // double sRA = ::atan2(sin(slon*DEG_RAD) * cos(oblecl*DEG_RAD), cos(slon*DEG_RAD))*RAD_DEG;
1527 // double sin_sDec = ::sin(oblecl*DEG_RAD) * ::sin(slon*DEG_RAD);
1528 // double sDec = ::asin(sin_sDec)*RAD_DEG;
1530 // // COMPUTING RISE AND SET TIMES
1531 // // ----------------------------
1533 // // To compute when an object rises or sets, you must compute when it
1534 // // passes the meridian and the HA of rise/set. Then the rise time is
1535 // // the meridian time minus HA for rise/set, and the set time is the
1536 // // meridian time plus the HA for rise/set.
1538 // // To find the meridian time, compute the Local Sidereal Time at 0h local
1539 // // time (or 0h UT if you prefer to work in UT) as outlined above---name
1540 // // that quantity LST0. The Meridian Time, MT, will now be:
1542 // // MT = RA - LST0
1543 // double MT = normalize(sRA - LST, 360);
1545 // // where "RA" is the object's Right Ascension (in degrees!). If negative,
1546 // // add 360 deg to MT. If the object is the Sun, leave the time as it is,
1547 // // but if it's stellar, multiply MT by 365.2422/366.2422, to convert from
1548 // // sidereal to solar time. Now, compute HA for rise/set, name that
1551 // // ::sin(h0) - ::sin(lat) * ::sin(Dec)
1552 // // cos(HA0) = ---------------------------------
1553 // // cos(lat) * cos(Dec)
1555 // // where h0 is the altitude selected to represent rise/set. For a purely
1556 // // mathematical horizon, set h0 = 0 and simplify to:
1558 // // cos(HA0) = - tan(lat) * tan(Dec)
1560 // // If you want to account for refraction on the atmosphere, set h0 = -35/60
1561 // // degrees (-35 arc minutes), and if you want to compute the rise/set times
1562 // // for the Sun's upper limb, set h0 = -50/60 (-50 arc minutes).
1564 // double h0 = -50/60 * DEG_RAD;
1566 // double HA0 = ::acos(
1567 // (sin(h0) - ::sin(fLatitude) * sin_sDec) /
1568 // (cos(fLatitude) * cos(sDec*DEG_RAD)))*RAD_DEG;
1570 // // When HA0 has been computed, leave it as it is for the Sun but multiply
1571 // // by 365.2422/366.2422 for stellar objects, to convert from sidereal to
1572 // // solar time. Finally compute:
1574 // // Rise time = MT - HA0
1575 // // Set time = MT + HA0
1577 // // convert the times from degrees to hours by dividing by 15.
1579 // // If you'd like to check that your calculations are accurate or just
1580 // // need a quick result, check the USNO's Sun or Moon Rise/Set Table,
1581 // // <URL:http://aa.usno.navy.mil/AA/data/docs/RS_OneYear.html>.
1583 // double result = MT + (rise ? -HA0 : HA0); // in degrees
1585 // // Find UT midnight on this day
1586 // long midnight = DAY_MS * (time / DAY_MS);
1588 // return midnight + (long) (result * 3600000 / 15);
1591 //-------------------------------------------------------------------------
1593 //-------------------------------------------------------------------------
1595 #define moonL0 (318.351648 * CalendarAstronomer::PI/180 ) // Mean long. at epoch
1596 #define moonP0 ( 36.340410 * CalendarAstronomer::PI/180 ) // Mean long. of perigee
1597 #define moonN0 ( 318.510107 * CalendarAstronomer::PI/180 ) // Mean long. of node
1598 #define moonI ( 5.145366 * CalendarAstronomer::PI/180 ) // Inclination of orbit
1599 #define moonE ( 0.054900 ) // Eccentricity of orbit
1601 // These aren't used right now
1602 #define moonA ( 3.84401e5 ) // semi-major axis (km)
1603 #define moonT0 ( 0.5181 * CalendarAstronomer::PI/180 ) // Angular size at distance A
1604 #define moonPi ( 0.9507 * CalendarAstronomer::PI/180 ) // Parallax at distance A
1606 // new moon date/times 1900-2100 (in UTC)
1607 // These are in UDate/10000.0 (i.e. in units of 10 seconds) to fit into 32 bits.
1608 // sources from e.g.
1609 // http://eclipse.gsfc.nasa.gov/phase/phases2001.html
1610 // http://www.timeanddate.com/calendar/moonphases.html?year=1900&n=0
1611 // From the latter: "The lunation number represents the number of times the Moon has
1612 // cycled the Earth since January 1923 (based on a series described by Ernest W. Brown
1613 // in _Planetary Theory_, 1933). One cycle, or lunation, starts at new moon and lasts
1614 // until the next new moon."
1615 // The mean synodic month (interval from one new moon to the next) is 29.530588853 days,
1616 // but the deviation from the mean is significant and difficult to model. I tried based
1617 // on the description in http://individual.utoronto.ca/kalendis/lunar/index.htm
1618 // using the product of two sine waves (with periods of 109.65 days and 13.944 days and
1619 // different phase shifts and amplitudes) but could not get anywhere near enough accuracy.
1620 // Hence these tables. -Peter E
1621 // These table are 9965 and 4974 bytes but greatly improve both the
1622 // accuracy and speed of the relevant methods for the relevant time range.
1624 // before fix, errors of up to +23 min / -18 min for next = true and much more for
1625 // next = false; after, errors always less than 1 min).
1626 // 40 to 80 times faster with the fix, depending on starting point.
1628 // more accurate with the fix (and never returns values >= 2*PI), also more than 11 times faster.
1629 static const int32_t newMoonDates
[] = {
1630 // millis/10K date lunation number
1631 -221149158, // 1899 Dec 3, 00:47 -285
1632 -220893888, // 1900 Jan 1, 13:52 -284
1633 -220639188, // 1900 Jan 31, 01:22 -283
1634 -220385010, // 1900 Mar 1, 11:25 -282
1635 -220131180, // 1900 Mar 30, 20:30 -281
1636 -219877422, // 1900 Apr 29, 05:23 -280
1637 -219623460, // 1900 May 28, 14:50 -279
1638 -219369078, // 1900 Jun 27, 01:27 -278
1639 -219114102, // 1900 Jul 26, 13:43 -277
1640 -218858442, // 1900 Aug 25, 03:53 -276
1641 -218602098, // 1900 Sep 23, 19:57 -275
1642 -218345238, // 1900 Oct 23, 13:27 -274
1643 -218088258, // 1900 Nov 22, 07:17 -273
1644 -217831674, // 1900 Dec 22, 00:01 -272
1645 -217575864, // 1901 Jan 20, 14:36 -271
1646 -217320930, // 1901 Feb 19, 02:45 -270
1647 -217066722, // 1901 Mar 20, 12:53 -269
1648 -216813018, // 1901 Apr 18, 21:37 -268
1649 -216559572, // 1901 May 18, 05:38 -267
1650 -216306162, // 1901 Jun 16, 13:33 -266
1651 -216052500, // 1901 Jul 15, 22:10 -265
1652 -215798238, // 1901 Aug 14, 08:27 -264
1653 -215543046, // 1901 Sep 12, 21:19 -263
1654 -215286768, // 1901 Oct 12, 13:12 -262
1655 -215029590, // 1901 Nov 11, 07:35 -261
1656 -214772076, // 1901 Dec 11, 02:54 -260
1657 -214514910, // 1902 Jan 9, 21:15 -259
1658 -214258554, // 1902 Feb 8, 13:21 -258
1659 -214003140, // 1902 Mar 10, 02:50 -257
1660 -213748620, // 1902 Apr 8, 13:50 -256
1661 -213494850, // 1902 May 7, 22:45 -255
1662 -213241614, // 1902 Jun 6, 06:11 -254
1663 -212988606, // 1902 Jul 5, 12:59 -253
1664 -212735418, // 1902 Aug 3, 20:17 -252
1665 -212481606, // 1902 Sep 2, 05:19 -251
1666 -212226786, // 1902 Oct 1, 17:09 -250
1667 -211970796, // 1902 Oct 31, 08:14 -249
1668 -211713810, // 1902 Nov 30, 02:05 -248
1669 -211456290, // 1902 Dec 29, 21:25 -247
1670 -211198806, // 1903 Jan 28, 16:39 -246
1671 -210941880, // 1903 Feb 27, 10:20 -245
1672 -210685884, // 1903 Mar 29, 01:26 -244
1673 -210430974, // 1903 Apr 27, 13:31 -243
1674 -210177060, // 1903 May 26, 22:50 -242
1675 -209923854, // 1903 Jun 25, 06:11 -241
1676 -209670924, // 1903 Jul 24, 12:46 -240
1677 -209417814, // 1903 Aug 22, 19:51 -239
1678 -209164140, // 1903 Sep 21, 04:30 -238
1679 -208909620, // 1903 Oct 20, 15:30 -237
1680 -208654140, // 1903 Nov 19, 05:10 -236
1681 -208397724, // 1903 Dec 18, 21:26 -235
1682 -208140558, // 1904 Jan 17, 15:47 -234
1683 -207883050, // 1904 Feb 16, 11:05 -233
1684 -207625806, // 1904 Mar 17, 05:39 -232
1685 -207369402, // 1904 Apr 15, 21:53 -231
1686 -207114132, // 1904 May 15, 10:58 -230
1687 -206859900, // 1904 Jun 13, 21:10 -229
1688 -206606358, // 1904 Jul 13, 05:27 -228
1689 -206353092, // 1904 Aug 11, 12:58 -227
1690 -206099742, // 1904 Sep 9, 20:43 -226
1691 -205846050, // 1904 Oct 9, 05:25 -225
1692 -205591818, // 1904 Nov 7, 15:37 -224
1693 -205336884, // 1904 Dec 7, 03:46 -223
1694 -205081098, // 1905 Jan 5, 18:17 -222
1695 -204824484, // 1905 Feb 4, 11:06 -221
1696 -204567366, // 1905 Mar 6, 05:19 -220
1697 -204310296, // 1905 Apr 4, 23:24 -219
1698 -204053820, // 1905 May 4, 15:50 -218
1699 -203798178, // 1905 Jun 3, 05:57 -217
1700 -203543340, // 1905 Jul 2, 17:50 -216
1701 -203289102, // 1905 Aug 1, 04:03 -215
1702 -203035242, // 1905 Aug 30, 13:13 -214
1703 -202781520, // 1905 Sep 28, 22:00 -213
1704 -202527732, // 1905 Oct 28, 06:58 -212
1705 -202273638, // 1905 Nov 26, 16:47 -211
1706 -202019016, // 1905 Dec 26, 04:04 -210
1707 -201763746, // 1906 Jan 24, 17:09 -209
1708 -201507858, // 1906 Feb 23, 07:57 -208
1709 -201251568, // 1906 Mar 24, 23:52 -207
1710 -200995158, // 1906 Apr 23, 16:07 -206
1711 -200738874, // 1906 May 23, 08:01 -205
1712 -200482884, // 1906 Jun 21, 23:06 -204
1713 -200227326, // 1906 Jul 21, 12:59 -203
1714 -199972272, // 1906 Aug 20, 01:28 -202
1715 -199717722, // 1906 Sep 18, 12:33 -201
1716 -199463502, // 1906 Oct 17, 22:43 -200
1717 -199209378, // 1906 Nov 16, 08:37 -199
1718 -198955116, // 1906 Dec 15, 18:54 -198
1719 -198700578, // 1907 Jan 14, 05:57 -197
1720 -198445782, // 1907 Feb 12, 17:43 -196
1721 -198190770, // 1907 Mar 14, 06:05 -195
1722 -197935524, // 1907 Apr 12, 19:06 -194
1723 -197679966, // 1907 May 12, 08:59 -193
1724 -197424060, // 1907 Jun 10, 23:50 -192
1725 -197167938, // 1907 Jul 10, 15:17 -191
1726 -196911858, // 1907 Aug 9, 06:37 -190
1727 -196656096, // 1907 Sep 7, 21:04 -189
1728 -196400754, // 1907 Oct 7, 10:21 -188
1729 -196145766, // 1907 Nov 5, 22:39 -187
1730 -195890982, // 1907 Dec 5, 10:23 -186
1731 -195636336, // 1908 Jan 3, 21:44 -185
1732 -195381864, // 1908 Feb 2, 08:36 -184
1733 -195127578, // 1908 Mar 2, 18:57 -183
1734 -194873388, // 1908 Apr 1, 05:02 -182
1735 -194619042, // 1908 Apr 30, 15:33 -181
1736 -194364276, // 1908 May 30, 03:14 -180
1737 -194108934, // 1908 Jun 28, 16:31 -179
1738 -193853058, // 1908 Jul 28, 07:17 -178
1739 -193596846, // 1908 Aug 26, 22:59 -177
1740 -193340526, // 1908 Sep 25, 14:59 -176
1741 -193084278, // 1908 Oct 25, 06:47 -175
1742 -192828282, // 1908 Nov 23, 21:53 -174
1743 -192572700, // 1908 Dec 23, 11:50 -173
1744 -192317688, // 1909 Jan 22, 00:12 -172
1745 -192063288, // 1909 Feb 20, 10:52 -171
1746 -191809374, // 1909 Mar 21, 20:11 -170
1747 -191555694, // 1909 Apr 20, 04:51 -169
1748 -191301948, // 1909 May 19, 13:42 -168
1749 -191047872, // 1909 Jun 17, 23:28 -167
1750 -190793256, // 1909 Jul 17, 10:44 -166
1751 -190537950, // 1909 Aug 15, 23:55 -165
1752 -190281906, // 1909 Sep 14, 15:09 -164
1753 -190025202, // 1909 Oct 14, 08:13 -163
1754 -189768132, // 1909 Nov 13, 02:18 -162
1755 -189511206, // 1909 Dec 12, 19:59 -161
1756 -189254934, // 1910 Jan 11, 11:51 -160
1757 -188999562, // 1910 Feb 10, 01:13 -159
1758 -188745048, // 1910 Mar 11, 12:12 -158
1759 -188491170, // 1910 Apr 9, 21:25 -157
1760 -188237688, // 1910 May 9, 05:32 -156
1761 -187984344, // 1910 Jun 7, 13:16 -155
1762 -187730880, // 1910 Jul 6, 21:20 -154
1763 -187476984, // 1910 Aug 5, 06:36 -153
1764 -187222290, // 1910 Sep 3, 18:05 -152
1765 -186966528, // 1910 Oct 3, 08:32 -151
1766 -186709704, // 1910 Nov 2, 01:56 -150
1767 -186452214, // 1910 Dec 1, 21:11 -149
1768 -186194754, // 1910 Dec 31, 16:21 -148
1769 -185937930, // 1911 Jan 30, 09:45 -147
1770 -185682054, // 1911 Mar 1, 00:31 -146
1771 -185427132, // 1911 Mar 30, 12:38 -145
1772 -185173050, // 1911 Apr 28, 22:25 -144
1773 -184919616, // 1911 May 28, 06:24 -143
1774 -184666566, // 1911 Jun 26, 13:19 -142
1775 -184413534, // 1911 Jul 25, 20:11 -141
1776 -184160076, // 1911 Aug 24, 04:14 -140
1777 -183905778, // 1911 Sep 22, 14:37 -139
1778 -183650346, // 1911 Oct 22, 04:09 -138
1779 -183393786, // 1911 Nov 20, 20:49 -137
1780 -183136440, // 1911 Dec 20, 15:40 -136
1781 -182878866, // 1912 Jan 19, 11:09 -135
1782 -182621616, // 1912 Feb 18, 05:44 -134
1783 -182365152, // 1912 Mar 18, 22:08 -133
1784 -182109720, // 1912 Apr 17, 11:40 -132
1785 -181855362, // 1912 May 16, 22:13 -131
1786 -181601862, // 1912 Jun 15, 06:23 -130
1787 -181348842, // 1912 Jul 14, 13:13 -129
1788 -181095858, // 1912 Aug 12, 19:57 -128
1789 -180842472, // 1912 Sep 11, 03:48 -127
1790 -180588360, // 1912 Oct 10, 13:40 -126
1791 -180333336, // 1912 Nov 9, 02:04 -125
1792 -180077364, // 1912 Dec 8, 17:06 -124
1793 -179820552, // 1913 Jan 7, 10:28 -123
1794 -179563194, // 1913 Feb 6, 05:21 -122
1795 -179305788, // 1913 Mar 8, 00:22 -121
1796 -179048952, // 1913 Apr 6, 17:48 -120
1797 -178793136, // 1913 May 6, 08:24 -119
1798 -178538418, // 1913 Jun 4, 19:57 -118
1799 -178284564, // 1913 Jul 4, 05:06 -117
1800 -178031172, // 1913 Aug 2, 12:58 -116
1801 -177777858, // 1913 Aug 31, 20:37 -115
1802 -177524304, // 1913 Sep 30, 04:56 -114
1803 -177270306, // 1913 Oct 29, 14:29 -113
1804 -177015714, // 1913 Nov 28, 01:41 -112
1805 -176760372, // 1913 Dec 27, 14:58 -111
1806 -176504196, // 1914 Jan 26, 06:34 -110
1807 -176247348, // 1914 Feb 25, 00:02 -109
1808 -175990266, // 1914 Mar 26, 18:09 -108
1809 -175733514, // 1914 Apr 25, 11:21 -107
1810 -175477476, // 1914 May 25, 02:34 -106
1811 -175222242, // 1914 Jun 23, 15:33 -105
1812 -174967692, // 1914 Jul 23, 02:38 -104
1813 -174713604, // 1914 Aug 21, 12:26 -103
1814 -174459762, // 1914 Sep 19, 21:33 -102
1815 -174205962, // 1914 Oct 19, 06:33 -101
1816 -173951988, // 1914 Nov 17, 16:02 -100
1817 -173697630, // 1914 Dec 17, 02:35 -99
1818 -173442708, // 1915 Jan 15, 14:42 -98
1819 -173187174, // 1915 Feb 14, 04:31 -97
1820 -172931148, // 1915 Mar 15, 19:42 -96
1821 -172674870, // 1915 Apr 14, 11:35 -95
1822 -172418574, // 1915 May 14, 03:31 -94
1823 -172162458, // 1915 Jun 12, 18:57 -93
1824 -171906660, // 1915 Jul 12, 09:30 -92
1825 -171651288, // 1915 Aug 10, 22:52 -91
1826 -171396408, // 1915 Sep 9, 10:52 -90
1827 -171141954, // 1915 Oct 8, 21:41 -89
1828 -170887728, // 1915 Nov 7, 07:52 -88
1829 -170633502, // 1915 Dec 6, 18:03 -87
1830 -170379090, // 1916 Jan 5, 04:45 -86
1831 -170124450, // 1916 Feb 3, 16:05 -85
1832 -169869612, // 1916 Mar 4, 03:58 -84
1833 -169614594, // 1916 Apr 2, 16:21 -83
1834 -169359306, // 1916 May 2, 05:29 -82
1835 -169103658, // 1916 May 31, 19:37 -81
1836 -168847662, // 1916 Jun 30, 10:43 -80
1837 -168591510, // 1916 Jul 30, 02:15 -79
1838 -168335490, // 1916 Aug 28, 17:25 -78
1839 -168079836, // 1916 Sep 27, 07:34 -77
1840 -167824578, // 1916 Oct 26, 20:37 -76
1841 -167569620, // 1916 Nov 25, 08:50 -75
1842 -167314854, // 1916 Dec 24, 20:31 -74
1843 -167060280, // 1917 Jan 23, 07:40 -73
1844 -166805946, // 1917 Feb 21, 18:09 -72
1845 -166551810, // 1917 Mar 23, 04:05 -71
1846 -166297674, // 1917 Apr 21, 14:01 -70
1847 -166043238, // 1917 May 21, 00:47 -69
1848 -165788268, // 1917 Jun 19, 13:02 -68
1849 -165532680, // 1917 Jul 19, 03:00 -67
1850 -165276594, // 1917 Aug 17, 18:21 -66
1851 -165020232, // 1917 Sep 16, 10:28 -65
1852 -164763834, // 1917 Oct 16, 02:41 -64
1853 -164507592, // 1917 Nov 14, 18:28 -63
1854 -164251698, // 1917 Dec 14, 09:17 -62
1855 -163996350, // 1918 Jan 12, 22:35 -61
1856 -163741656, // 1918 Feb 11, 10:04 -60
1857 -163487568, // 1918 Mar 12, 19:52 -59
1858 -163233876, // 1918 Apr 11, 04:34 -58
1859 -162980274, // 1918 May 10, 13:01 -57
1860 -162726462, // 1918 Jun 8, 22:03 -56
1861 -162472188, // 1918 Jul 8, 08:22 -55
1862 -162217266, // 1918 Aug 6, 20:29 -54
1863 -161961576, // 1918 Sep 5, 10:44 -53
1864 -161705130, // 1918 Oct 5, 03:05 -52
1865 -161448114, // 1918 Nov 3, 21:01 -51
1866 -161190966, // 1918 Dec 3, 15:19 -50
1867 -160934256, // 1919 Jan 2, 08:24 -49
1868 -160678398, // 1919 Jan 31, 23:07 -48
1869 -160423494, // 1919 Mar 2, 11:11 -47
1870 -160169370, // 1919 Mar 31, 21:05 -46
1871 -159915780, // 1919 Apr 30, 05:30 -45
1872 -159662448, // 1919 May 29, 13:12 -44
1873 -159409128, // 1919 Jun 27, 20:52 -43
1874 -159155514, // 1919 Jul 27, 05:21 -42
1875 -158901258, // 1919 Aug 25, 15:37 -41
1876 -158646036, // 1919 Sep 24, 04:34 -40
1877 -158389686, // 1919 Oct 23, 20:39 -39
1878 -158132400, // 1919 Nov 22, 15:20 -38
1879 -157874790, // 1919 Dec 22, 10:55 -37
1880 -157617558, // 1920 Jan 21, 05:27 -36
1881 -157361196, // 1920 Feb 19, 21:34 -35
1882 -157105824, // 1920 Mar 20, 10:56 -34
1883 -156851382, // 1920 Apr 18, 21:43 -33
1884 -156597690, // 1920 May 18, 06:25 -32
1885 -156344514, // 1920 Jun 16, 13:41 -31
1886 -156091530, // 1920 Jul 15, 20:25 -30
1887 -155838336, // 1920 Aug 14, 03:44 -29
1888 -155584494, // 1920 Sep 12, 12:51 -28
1889 -155329620, // 1920 Oct 12, 00:50 -27
1890 -155073570, // 1920 Nov 10, 16:05 -26
1891 -154816536, // 1920 Dec 10, 10:04 -25
1892 -154558998, // 1921 Jan 9, 05:27 -24
1893 -154301538, // 1921 Feb 8, 00:37 -23
1894 -154044666, // 1921 Mar 9, 18:09 -22
1895 -153788730, // 1921 Apr 8, 09:05 -21
1896 -153533874, // 1921 May 7, 21:01 -20
1897 -153279990, // 1921 Jun 6, 06:15 -19
1898 -153026784, // 1921 Jul 5, 13:36 -18
1899 -152773818, // 1921 Aug 3, 20:17 -17
1900 -152520642, // 1921 Sep 2, 03:33 -16
1901 -152266884, // 1921 Oct 1, 12:26 -15
1902 -152012292, // 1921 Oct 30, 23:38 -14
1903 -151756770, // 1921 Nov 29, 13:25 -13
1904 -151500366, // 1921 Dec 29, 05:39 -12
1905 -151243272, // 1922 Jan 27, 23:48 -11
1906 -150985878, // 1922 Feb 26, 18:47 -10
1907 -150728742, // 1922 Mar 28, 13:03 -9
1908 -150472416, // 1922 Apr 27, 05:04 -8
1909 -150217176, // 1922 May 26, 18:04 -7
1910 -149962920, // 1922 Jun 25, 04:20 -6
1911 -149709318, // 1922 Jul 24, 12:47 -5
1912 -149455956, // 1922 Aug 22, 20:34 -4
1913 -149202492, // 1922 Sep 21, 04:38 -3
1914 -148948680, // 1922 Oct 20, 13:40 -2
1915 -148694364, // 1922 Nov 19, 00:06 -1
1916 -148439400, // 1922 Dec 18, 12:20 0
1917 -148183674, // 1923 Jan 17, 02:41 1
1918 -147927198, // 1923 Feb 15, 19:07 2
1919 -147670254, // 1923 Mar 17, 12:51 3
1920 -147413352, // 1923 Apr 16, 06:28 4
1921 -147156972, // 1923 May 15, 22:38 5
1922 -146901348, // 1923 Jun 14, 12:42 6
1923 -146646450, // 1923 Jul 14, 00:45 7
1924 -146392098, // 1923 Aug 12, 11:17 8
1925 -146138088, // 1923 Sep 10, 20:52 9
1926 -145884210, // 1923 Oct 10, 06:05 10
1927 -145630278, // 1923 Nov 8, 15:27 11
1928 -145376100, // 1923 Dec 8, 01:30 12
1929 -145121478, // 1924 Jan 6, 12:47 13
1930 -144866292, // 1924 Feb 5, 01:38 14
1931 -144610578, // 1924 Mar 5, 15:57 15
1932 -144354498, // 1924 Apr 4, 07:17 16
1933 -144098280, // 1924 May 3, 23:00 17
1934 -143842116, // 1924 Jun 2, 14:34 18
1935 -143586150, // 1924 Jul 2, 05:35 19
1936 -143330508, // 1924 Jul 31, 19:42 20
1937 -143075298, // 1924 Aug 30, 08:37 21
1938 -142820544, // 1924 Sep 28, 20:16 22
1939 -142566138, // 1924 Oct 28, 06:57 23
1940 -142311864, // 1924 Nov 26, 17:16 24
1941 -142057524, // 1924 Dec 26, 03:46 25
1942 -141803010, // 1925 Jan 24, 14:45 26
1943 -141548328, // 1925 Feb 23, 02:12 27
1944 -141293502, // 1925 Mar 24, 14:03 28
1945 -141038472, // 1925 Apr 23, 02:28 29
1946 -140783112, // 1925 May 22, 15:48 30
1947 -140527338, // 1925 Jun 21, 06:17 31
1948 -140271240, // 1925 Jul 20, 21:40 32
1949 -140015070, // 1925 Aug 19, 13:15 33
1950 -139759122, // 1925 Sep 18, 04:13 34
1951 -139503564, // 1925 Oct 17, 18:06 35
1952 -139248372, // 1925 Nov 16, 06:58 36
1953 -138993450, // 1925 Dec 15, 19:05 37
1954 -138738750, // 1926 Jan 14, 06:35 38
1955 -138484320, // 1926 Feb 12, 17:20 39
1956 -138230160, // 1926 Mar 14, 03:20 40
1957 -137976144, // 1926 Apr 12, 12:56 41
1958 -137721990, // 1926 May 11, 22:55 42
1959 -137467392, // 1926 Jun 10, 10:08 43
1960 -137212164, // 1926 Jul 9, 23:06 44
1961 -136956306, // 1926 Aug 8, 13:49 45
1962 -136700010, // 1926 Sep 7, 05:45 46
1963 -136443522, // 1926 Oct 6, 22:13 47
1964 -136187076, // 1926 Nov 5, 14:34 48
1965 -135930888, // 1926 Dec 5, 06:12 49
1966 -135675192, // 1927 Jan 3, 20:28 50
1967 -135420156, // 1927 Feb 2, 08:54 51
1968 -135165816, // 1927 Mar 3, 19:24 52
1969 -134912016, // 1927 Apr 2, 04:24 53
1970 -134658486, // 1927 May 1, 12:39 54
1971 -134404890, // 1927 May 30, 21:05 55
1972 -134150934, // 1927 Jun 29, 06:31 56
1973 -133896384, // 1927 Jul 28, 17:36 57
1974 -133641090, // 1927 Aug 27, 06:45 58
1975 -133384974, // 1927 Sep 25, 22:11 59
1976 -133128138, // 1927 Oct 25, 15:37 60
1977 -132870906, // 1927 Nov 24, 10:09 61
1978 -132613842, // 1927 Dec 24, 04:13 62
1979 -132357486, // 1928 Jan 22, 20:19 63
1980 -132102114, // 1928 Feb 21, 09:41 64
1981 -131847666, // 1928 Mar 21, 20:29 65
1982 -131593890, // 1928 Apr 20, 05:25 66
1983 -131340516, // 1928 May 19, 13:14 67
1984 -131087268, // 1928 Jun 17, 20:42 68
1985 -130833870, // 1928 Jul 17, 04:35 69
1986 -130579992, // 1928 Aug 15, 13:48 70
1987 -130325280, // 1928 Sep 14, 01:20 71
1988 -130069464, // 1928 Oct 13, 15:56 72
1989 -129812550, // 1928 Nov 12, 09:35 73
1990 -129554964, // 1928 Dec 12, 05:06 74
1991 -129297432, // 1929 Jan 11, 00:28 75
1992 -129040590, // 1929 Feb 9, 17:55 76
1993 -128784738, // 1929 Mar 11, 08:37 77
1994 -128529882, // 1929 Apr 9, 20:33 78
1995 -128275872, // 1929 May 9, 06:08 79
1996 -128022498, // 1929 Jun 7, 13:57 80
1997 -127769478, // 1929 Jul 6, 20:47 81
1998 -127516440, // 1929 Aug 5, 03:40 82
1999 -127262958, // 1929 Sep 3, 11:47 83
2000 -127008606, // 1929 Oct 2, 22:19 84
2001 -126753114, // 1929 Nov 1, 12:01 85
2002 -126496512, // 1929 Dec 1, 04:48 86
2003 -126239148, // 1929 Dec 30, 23:42 87
2004 -125981598, // 1930 Jan 29, 19:07 88
2005 -125724402, // 1930 Feb 28, 13:33 89
2006 -125467998, // 1930 Mar 30, 05:47 90
2007 -125212626, // 1930 Apr 28, 19:09 91
2008 -124958298, // 1930 May 28, 05:37 92
2009 -124704798, // 1930 Jun 26, 13:47 93
2010 -124451748, // 1930 Jul 25, 20:42 94
2011 -124198698, // 1930 Aug 24, 03:37 95
2012 -123945234, // 1930 Sep 22, 11:41 96
2013 -123691038, // 1930 Oct 21, 21:47 97
2014 -123435954, // 1930 Nov 20, 10:21 98
2015 -123179976, // 1930 Dec 20, 01:24 99
2016 -122923230, // 1931 Jan 18, 18:35 100
2017 -122665980, // 1931 Feb 17, 13:10 101
2018 -122408700, // 1931 Mar 19, 07:50 102
2019 -122151960, // 1931 Apr 18, 01:00 103
2020 -121896192, // 1931 May 17, 15:28 104
2021 -121641468, // 1931 Jun 16, 03:02 105
2022 -121387560, // 1931 Jul 15, 12:20 106
2023 -121134078, // 1931 Aug 13, 20:27 107
2024 -120880644, // 1931 Sep 12, 04:26 108
2025 -120626964, // 1931 Oct 11, 13:06 109
2026 -120372870, // 1931 Nov 9, 22:55 110
2027 -120118224, // 1931 Dec 9, 10:16 111
2028 -119862906, // 1932 Jan 7, 23:29 112
2029 -119606850, // 1932 Feb 6, 14:45 113
2030 -119350176, // 1932 Mar 7, 07:44 114
2031 -119093274, // 1932 Apr 6, 01:21 115
2032 -118836654, // 1932 May 5, 18:11 116
2033 -118580664, // 1932 Jun 4, 09:16 117
2034 -118325400, // 1932 Jul 3, 22:20 118
2035 -118070748, // 1932 Aug 2, 09:42 119
2036 -117816510, // 1932 Aug 31, 19:55 120
2037 -117562500, // 1932 Sep 30, 05:30 121
2038 -117308544, // 1932 Oct 29, 14:56 122
2039 -117054462, // 1932 Nov 28, 00:43 123
2040 -116800068, // 1932 Dec 27, 11:22 124
2041 -116545200, // 1933 Jan 25, 23:20 125
2042 -116289816, // 1933 Feb 24, 12:44 126
2043 -116034000, // 1933 Mar 26, 03:20 127
2044 -115777932, // 1933 Apr 24, 18:38 128
2045 -115521798, // 1933 May 24, 10:07 129
2046 -115265748, // 1933 Jun 23, 01:22 130
2047 -115009902, // 1933 Jul 22, 16:03 131
2048 -114754392, // 1933 Aug 21, 05:48 132
2049 -114499314, // 1933 Sep 19, 18:21 133
2050 -114244650, // 1933 Oct 19, 05:45 134
2051 -113990256, // 1933 Nov 17, 16:24 135
2052 -113735922, // 1933 Dec 17, 02:53 136
2053 -113481498, // 1934 Jan 15, 13:37 137
2054 -113226936, // 1934 Feb 14, 00:44 138
2055 -112972266, // 1934 Mar 15, 12:09 139
2056 -112717458, // 1934 Apr 13, 23:57 140
2057 -112462380, // 1934 May 13, 12:30 141
2058 -112206894, // 1934 Jun 12, 02:11 142
2059 -111950964, // 1934 Jul 11, 17:06 143
2060 -111694764, // 1934 Aug 10, 08:46 144
2061 -111438600, // 1934 Sep 9, 00:20 145
2062 -111182730, // 1934 Oct 8, 15:05 146
2063 -110927262, // 1934 Nov 7, 04:43 147
2064 -110672130, // 1934 Dec 6, 17:25 148
2065 -110417280, // 1935 Jan 5, 05:20 149
2066 -110162718, // 1935 Feb 3, 16:27 150
2067 -109908480, // 1935 Mar 5, 02:40 151
2068 -109654494, // 1935 Apr 3, 12:11 152
2069 -109400538, // 1935 May 2, 21:37 153
2070 -109146288, // 1935 Jun 1, 07:52 154
2071 -108891456, // 1935 Jun 30, 19:44 155
2072 -108635928, // 1935 Jul 30, 09:32 156
2073 -108379794, // 1935 Aug 29, 01:01 157
2074 -108123300, // 1935 Sep 27, 17:30 158
2075 -107866710, // 1935 Oct 27, 10:15 159
2076 -107610264, // 1935 Nov 26, 02:36 160
2077 -107354226, // 1935 Dec 25, 17:49 161
2078 -107098812, // 1936 Jan 24, 07:18 162
2079 -106844148, // 1936 Feb 22, 18:42 163
2080 -106590162, // 1936 Mar 23, 04:13 164
2081 -106336602, // 1936 Apr 21, 12:33 165
2082 -106083150, // 1936 May 20, 20:35 166
2083 -105829476, // 1936 Jun 19, 05:14 167
2084 -105575292, // 1936 Jul 18, 15:18 168
2085 -105320394, // 1936 Aug 17, 03:21 169
2086 -105064674, // 1936 Sep 15, 17:41 170
2087 -104808114, // 1936 Oct 15, 10:21 171
2088 -104550948, // 1936 Nov 14, 04:42 172
2089 -104293650, // 1936 Dec 13, 23:25 173
2090 -104036838, // 1937 Jan 12, 16:47 174
2091 -103780956, // 1937 Feb 11, 07:34 175
2092 -103526094, // 1937 Mar 12, 19:31 176
2093 -103272060, // 1937 Apr 11, 05:10 177
2094 -103018572, // 1937 May 10, 13:18 178
2095 -102765342, // 1937 Jun 8, 20:43 179
2096 -102512082, // 1937 Jul 8, 04:13 180
2097 -102258498, // 1937 Aug 6, 12:37 181
2098 -102004242, // 1937 Sep 4, 22:53 182
2099 -101748972, // 1937 Oct 4, 11:58 183
2100 -101492544, // 1937 Nov 3, 04:16 184
2101 -101235174, // 1937 Dec 2, 23:11 185
2102 -100977486, // 1938 Jan 1, 18:59 186
2103 -100720230, // 1938 Jan 31, 13:35 187
2104 -100463880, // 1938 Mar 2, 05:40 188
2105 -100208568, // 1938 Mar 31, 18:52 189
2106 -99954192, // 1938 Apr 30, 05:28 190
2107 -99700560, // 1938 May 29, 14:00 191
2108 -99447420, // 1938 Jun 27, 21:10 192
2109 -99194442, // 1938 Jul 27, 03:53 193
2110 -98941218, // 1938 Aug 25, 11:17 194
2111 -98687322, // 1938 Sep 23, 20:33 195
2112 -98432388, // 1938 Oct 23, 08:42 196
2113 -98176290, // 1938 Nov 22, 00:05 197
2114 -97919238, // 1938 Dec 21, 18:07 198
2115 -97661718, // 1939 Jan 20, 13:27 199
2116 -97404312, // 1939 Feb 19, 08:28 200
2117 -97147506, // 1939 Mar 21, 01:49 201
2118 -96891630, // 1939 Apr 19, 16:35 202
2119 -96636810, // 1939 May 19, 04:25 203
2120 -96382938, // 1939 Jun 17, 13:37 204
2121 -96129702, // 1939 Jul 16, 21:03 205
2122 -95876682, // 1939 Aug 15, 03:53 206
2123 -95623428, // 1939 Sep 13, 11:22 207
2124 -95369580, // 1939 Oct 12, 20:30 208
2125 -95114916, // 1939 Nov 11, 07:54 209
2126 -94859370, // 1939 Dec 10, 21:45 210
2127 -94603002, // 1940 Jan 9, 13:53 211
2128 -94346010, // 1940 Feb 8, 07:45 212
2129 -94088742, // 1940 Mar 9, 02:23 213
2130 -93831732, // 1940 Apr 7, 20:18 214
2131 -93575478, // 1940 May 7, 12:07 215
2132 -93320250, // 1940 Jun 6, 01:05 216
2133 -93065952, // 1940 Jul 5, 11:28 217
2134 -92812266, // 1940 Aug 3, 20:09 218
2135 -92558790, // 1940 Sep 2, 04:15 219
2136 -92305194, // 1940 Oct 1, 12:41 220
2137 -92051262, // 1940 Oct 30, 22:03 221
2138 -91796868, // 1940 Nov 29, 08:42 222
2139 -91541904, // 1940 Dec 28, 20:56 223
2140 -91286262, // 1941 Jan 27, 11:03 224
2141 -91029948, // 1941 Feb 26, 03:02 225
2142 -90773196, // 1941 Mar 27, 20:14 226
2143 -90516456, // 1941 Apr 26, 13:24 227
2144 -90260172, // 1941 May 26, 05:18 228
2145 -90004548, // 1941 Jun 24, 19:22 229
2146 -89749566, // 1941 Jul 24, 07:39 230
2147 -89495076, // 1941 Aug 22, 18:34 231
2148 -89240886, // 1941 Sep 21, 04:39 232
2149 -88986840, // 1941 Oct 20, 14:20 233
2150 -88732776, // 1941 Nov 19, 00:04 234
2151 -88478532, // 1941 Dec 18, 10:18 235
2152 -88223928, // 1942 Jan 16, 21:32 236
2153 -87968862, // 1942 Feb 15, 10:03 237
2154 -87713340, // 1942 Mar 16, 23:50 238
2155 -87457482, // 1942 Apr 15, 14:33 239
2156 -87201450, // 1942 May 15, 05:45 240
2157 -86945388, // 1942 Jun 13, 21:02 241
2158 -86689422, // 1942 Jul 13, 12:03 242
2159 -86433672, // 1942 Aug 12, 02:28 243
2160 -86178282, // 1942 Sep 10, 15:53 244
2161 -85923324, // 1942 Oct 10, 04:06 245
2162 -85668726, // 1942 Nov 8, 15:19 246
2163 -85414320, // 1942 Dec 8, 02:00 247
2164 -85159932, // 1943 Jan 6, 12:38 248
2165 -84905466, // 1943 Feb 4, 23:29 249
2166 -84650916, // 1943 Mar 6, 10:34 250
2167 -84396282, // 1943 Apr 4, 21:53 251
2168 -84141462, // 1943 May 4, 09:43 252
2169 -83886282, // 1943 Jun 2, 22:33 253
2170 -83630616, // 1943 Jul 2, 12:44 254
2171 -83374524, // 1943 Aug 1, 04:06 255
2172 -83118240, // 1943 Aug 30, 20:00 256
2173 -82862106, // 1943 Sep 29, 11:29 257
2174 -82606326, // 1943 Oct 29, 01:59 258
2175 -82350942, // 1943 Nov 27, 15:23 259
2176 -82095900, // 1943 Dec 27, 03:50 260
2177 -81841176, // 1944 Jan 25, 15:24 261
2178 -81586806, // 1944 Feb 24, 01:59 262
2179 -81332784, // 1944 Mar 24, 11:36 263
2180 -81078936, // 1944 Apr 22, 20:44 264
2181 -80824962, // 1944 May 22, 06:13 265
2182 -80570520, // 1944 Jun 20, 17:00 266
2183 -80315388, // 1944 Jul 20, 05:42 267
2184 -80059530, // 1944 Aug 18, 20:25 268
2185 -79803138, // 1944 Sep 17, 12:37 269
2186 -79546470, // 1944 Oct 17, 05:35 270
2187 -79289826, // 1944 Nov 15, 22:29 271
2188 -79033470, // 1944 Dec 15, 14:35 272
2189 -78777678, // 1945 Jan 14, 05:07 273
2190 -78522642, // 1945 Feb 12, 17:33 274
2191 -78268374, // 1945 Mar 14, 03:51 275
2192 -78014700, // 1945 Apr 12, 12:30 276
2193 -77761308, // 1945 May 11, 20:22 277
2194 -77507844, // 1945 Jun 10, 04:26 278
2195 -77253990, // 1945 Jul 9, 13:35 279
2196 -76999488, // 1945 Aug 8, 00:32 280
2197 -76744176, // 1945 Sep 6, 13:44 281
2198 -76487988, // 1945 Oct 6, 05:22 282
2199 -76231020, // 1945 Nov 4, 23:10 283
2200 -75973638, // 1945 Dec 4, 18:07 284
2201 -75716460, // 1946 Jan 3, 12:30 285
2202 -75460062, // 1946 Feb 2, 04:43 286
2203 -75204714, // 1946 Mar 3, 18:01 287
2204 -74950338, // 1946 Apr 2, 04:37 288
2205 -74696664, // 1946 May 1, 13:16 289
2206 -74443386, // 1946 May 30, 20:49 290
2207 -74190204, // 1946 Jun 29, 04:06 291
2208 -73936842, // 1946 Jul 28, 11:53 292
2209 -73682958, // 1946 Aug 26, 21:07 293
2210 -73428210, // 1946 Sep 25, 08:45 294
2211 -73172328, // 1946 Oct 24, 23:32 295
2212 -72915336, // 1946 Nov 23, 17:24 296
2213 -72657684, // 1946 Dec 23, 13:06 297
2214 -72400116, // 1947 Jan 22, 08:34 298
2215 -72143280, // 1947 Feb 21, 02:00 299
2216 -71887476, // 1947 Mar 22, 16:34 300
2217 -71632686, // 1947 Apr 21, 04:19 301
2218 -71378736, // 1947 May 20, 13:44 302
2219 -71125404, // 1947 Jun 18, 21:26 303
2220 -70872390, // 1947 Jul 18, 04:15 304
2221 -70619328, // 1947 Aug 16, 11:12 305
2222 -70365792, // 1947 Sep 14, 19:28 306
2223 -70111380, // 1947 Oct 14, 06:10 307
2224 -69855834, // 1947 Nov 12, 20:01 308
2225 -69599202, // 1947 Dec 12, 12:53 309
2226 -69341850, // 1948 Jan 11, 07:45 310
2227 -69084348, // 1948 Feb 10, 03:02 311
2228 -68827230, // 1948 Mar 10, 21:15 312
2229 -68570898, // 1948 Apr 9, 13:17 313
2230 -68315580, // 1948 May 9, 02:30 314
2231 -68061264, // 1948 Jun 7, 12:56 315
2232 -67807746, // 1948 Jul 6, 21:09 316
2233 -67554642, // 1948 Aug 5, 04:13 317
2234 -67301514, // 1948 Sep 3, 11:21 318
2235 -67047948, // 1948 Oct 2, 19:42 319
2236 -66793662, // 1948 Nov 1, 06:03 320
2237 -66538530, // 1948 Nov 30, 18:45 321
2238 -66282570, // 1948 Dec 30, 09:45 322
2239 -66025908, // 1949 Jan 29, 02:42 323
2240 -65768790, // 1949 Feb 27, 20:55 324
2241 -65511654, // 1949 Mar 29, 15:11 325
2242 -65255028, // 1949 Apr 28, 08:02 326
2243 -64999296, // 1949 May 27, 22:24 327
2244 -64744548, // 1949 Jun 26, 10:02 328
2245 -64490562, // 1949 Jul 25, 19:33 329
2246 -64236966, // 1949 Aug 24, 03:59 330
2247 -63983394, // 1949 Sep 22, 12:21 331
2248 -63729582, // 1949 Oct 21, 21:23 332
2249 -63475386, // 1949 Nov 20, 07:29 333
2250 -63220704, // 1949 Dec 19, 18:56 334
2251 -62965440, // 1950 Jan 18, 08:00 335
2252 -62709522, // 1950 Feb 16, 22:53 336
2253 -62453040, // 1950 Mar 18, 15:20 337
2254 -62196330, // 1950 Apr 17, 08:25 338
2255 -61939830, // 1950 May 17, 00:55 339
2256 -61683882, // 1950 Jun 15, 15:53 340
2257 -61428564, // 1950 Jul 15, 05:06 341
2258 -61173792, // 1950 Aug 13, 16:48 342
2259 -60919386, // 1950 Sep 12, 03:29 343
2260 -60665202, // 1950 Oct 11, 13:33 344
2261 -60411090, // 1950 Nov 9, 23:25 345
2262 -60156906, // 1950 Dec 9, 09:29 346
2263 -59902500, // 1951 Jan 7, 20:10 347
2264 -59647716, // 1951 Feb 6, 07:54 348
2265 -59392494, // 1951 Mar 7, 20:51 349
2266 -59136888, // 1951 Apr 6, 10:52 350
2267 -58881024, // 1951 May 6, 01:36 351
2268 -58625040, // 1951 Jun 4, 16:40 352
2269 -58369032, // 1951 Jul 4, 07:48 353
2270 -58113126, // 1951 Aug 2, 22:39 354
2271 -57857460, // 1951 Sep 1, 12:50 355
2272 -57602178, // 1951 Oct 1, 01:57 356
2273 -57347316, // 1951 Oct 30, 13:54 357
2274 -57092760, // 1951 Nov 29, 01:00 358
2275 -56838342, // 1951 Dec 28, 11:43 359
2276 -56583924, // 1952 Jan 26, 22:26 360
2277 -56329464, // 1952 Feb 25, 09:16 361
2278 -56074962, // 1952 Mar 25, 20:13 362
2279 -55820352, // 1952 Apr 24, 07:28 363
2280 -55565472, // 1952 May 23, 19:28 364
2281 -55310130, // 1952 Jun 22, 08:45 365
2282 -55054254, // 1952 Jul 21, 23:31 366
2283 -54797994, // 1952 Aug 20, 15:21 367
2284 -54541668, // 1952 Sep 19, 07:22 368
2285 -54285582, // 1952 Oct 18, 22:43 369
2286 -54029904, // 1952 Nov 17, 12:56 370
2287 -53774628, // 1952 Dec 17, 02:02 371
2288 -53519712, // 1953 Jan 15, 14:08 372
2289 -53265180, // 1953 Feb 14, 01:10 373
2290 -53011050, // 1953 Mar 15, 11:05 374
2291 -52757226, // 1953 Apr 13, 20:09 375
2292 -52503444, // 1953 May 13, 05:06 376
2293 -52249350, // 1953 Jun 11, 14:55 377
2294 -51994632, // 1953 Jul 11, 02:28 378
2295 -51739140, // 1953 Aug 9, 16:10 379
2296 -51482952, // 1953 Sep 8, 07:48 380
2297 -51226314, // 1953 Oct 8, 00:41 381
2298 -50969532, // 1953 Nov 6, 17:58 382
2299 -50712912, // 1953 Dec 6, 10:48 383
2300 -50456754, // 1954 Jan 5, 02:21 384
2301 -50201310, // 1954 Feb 3, 15:55 385
2302 -49946694, // 1954 Mar 5, 03:11 386
2303 -49692810, // 1954 Apr 3, 12:25 387
2304 -49439382, // 1954 May 2, 20:23 388
2305 -49186062, // 1954 Jun 1, 04:03 389
2306 -48932484, // 1954 Jun 30, 12:26 390
2307 -48678360, // 1954 Jul 29, 22:20 391
2308 -48423474, // 1954 Aug 28, 10:21 392
2309 -48167694, // 1954 Sep 27, 00:51 393
2310 -47911038, // 1954 Oct 26, 17:47 394
2311 -47653734, // 1954 Nov 25, 12:31 395
2312 -47396316, // 1954 Dec 25, 07:34 396
2313 -47139438, // 1955 Jan 24, 01:07 397
2314 -46883556, // 1955 Feb 22, 15:54 398
2315 -46628748, // 1955 Mar 24, 03:42 399
2316 -46374804, // 1955 Apr 22, 13:06 400
2317 -46121406, // 1955 May 21, 20:59 401
2318 -45868248, // 1955 Jun 20, 04:12 402
2319 -45615036, // 1955 Jul 19, 11:34 403
2320 -45361452, // 1955 Aug 17, 19:58 404
2321 -45107166, // 1955 Sep 16, 06:19 405
2322 -44851848, // 1955 Oct 15, 19:32 406
2323 -44595348, // 1955 Nov 14, 12:02 407
2324 -44337918, // 1955 Dec 14, 07:07 408
2325 -44080194, // 1956 Jan 13, 03:01 409
2326 -43822932, // 1956 Feb 11, 21:38 410
2327 -43566618, // 1956 Mar 12, 13:37 411
2328 -43311366, // 1956 Apr 11, 02:39 412
2329 -43057056, // 1956 May 10, 13:04 413
2330 -42803466, // 1956 Jun 8, 21:29 414
2331 -42550332, // 1956 Jul 8, 04:38 415
2332 -42297330, // 1956 Aug 6, 11:25 416
2333 -42044058, // 1956 Sep 4, 18:57 417
2334 -41790090, // 1956 Oct 4, 04:25 418
2335 -41535096, // 1956 Nov 2, 16:44 419
2336 -41278962, // 1956 Dec 2, 08:13 420
2337 -41021916, // 1957 Jan 1, 02:14 421
2338 -40764450, // 1957 Jan 30, 21:25 422
2339 -40507122, // 1957 Mar 1, 16:13 423
2340 -40250406, // 1957 Mar 31, 09:19 424
2341 -39994596, // 1957 Apr 29, 23:54 425
2342 -39739806, // 1957 May 29, 11:39 426
2343 -39485916, // 1957 Jun 27, 20:54 427
2344 -39232632, // 1957 Jul 27, 04:28 428
2345 -38979522, // 1957 Aug 25, 11:33 429
2346 -38726166, // 1957 Sep 23, 19:19 430
2347 -38472222, // 1957 Oct 23, 04:43 431
2348 -38217486, // 1957 Nov 21, 16:19 432
2349 -37961928, // 1957 Dec 21, 06:12 433
2350 -37705632, // 1958 Jan 19, 22:08 434
2351 -37448772, // 1958 Feb 18, 15:38 435
2352 -37191660, // 1958 Mar 20, 09:50 436
2353 -36934782, // 1958 Apr 19, 03:23 437
2354 -36678600, // 1958 May 18, 19:00 438
2355 -36423366, // 1958 Jun 17, 07:59 439
2356 -36169002, // 1958 Jul 16, 18:33 440
2357 -35915202, // 1958 Aug 15, 03:33 441
2358 -35661588, // 1958 Sep 13, 12:02 442
2359 -35407848, // 1958 Oct 12, 20:52 443
2360 -35153796, // 1958 Nov 11, 06:34 444
2361 -34899342, // 1958 Dec 10, 17:23 445
2362 -34644396, // 1959 Jan 9, 05:34 446
2363 -34388868, // 1959 Feb 7, 19:22 447
2364 -34132734, // 1959 Mar 9, 10:51 448
2365 -33876186, // 1959 Apr 8, 03:29 449
2366 -33619608, // 1959 May 7, 20:12 450
2367 -33363402, // 1959 Jun 6, 11:53 451
2368 -33107760, // 1959 Jul 6, 02:00 452
2369 -32852676, // 1959 Aug 4, 14:34 453
2370 -32598030, // 1959 Sep 3, 01:55 454
2371 -32343654, // 1959 Oct 2, 12:31 455
2372 -32089434, // 1959 Oct 31, 22:41 456
2373 -31835244, // 1959 Nov 30, 08:46 457
2374 -31580946, // 1959 Dec 29, 19:09 458
2375 -31326390, // 1960 Jan 28, 06:15 459
2376 -31071462, // 1960 Feb 26, 18:23 460
2377 -30816138, // 1960 Mar 27, 07:37 461
2378 -30560496, // 1960 Apr 25, 21:44 462
2379 -30304644, // 1960 May 25, 12:26 463
2380 -30048678, // 1960 Jun 24, 03:27 464
2381 -29792694, // 1960 Jul 23, 18:31 465
2382 -29536830, // 1960 Aug 22, 09:15 466
2383 -29281242, // 1960 Sep 20, 23:13 467
2384 -29026068, // 1960 Oct 20, 12:02 468
2385 -28771284, // 1960 Nov 18, 23:46 469
2386 -28516758, // 1960 Dec 18, 10:47 470
2387 -28262340, // 1961 Jan 16, 21:30 471
2388 -28007940, // 1961 Feb 15, 08:10 472
2389 -27753534, // 1961 Mar 16, 18:51 473
2390 -27499092, // 1961 Apr 15, 05:38 474
2391 -27244476, // 1961 May 14, 16:54 475
2392 -26989464, // 1961 Jun 13, 05:16 476
2393 -26733894, // 1961 Jul 12, 19:11 477
2394 -26477784, // 1961 Aug 11, 10:36 478
2395 -26221380, // 1961 Sep 10, 02:50 479
2396 -25965042, // 1961 Oct 9, 18:53 480
2397 -25709052, // 1961 Nov 8, 09:58 481
2398 -25453488, // 1961 Dec 7, 23:52 482
2399 -25198350, // 1962 Jan 6, 12:35 483
2400 -24943620, // 1962 Feb 5, 00:10 484
2401 -24689334, // 1962 Mar 6, 10:31 485
2402 -24435450, // 1962 Apr 4, 19:45 486
2403 -24181770, // 1962 May 4, 04:25 487
2404 -23927958, // 1962 Jun 2, 13:27 488
2405 -23673648, // 1962 Jul 1, 23:52 489
2406 -23418576, // 1962 Jul 31, 12:24 490
2407 -23162706, // 1962 Aug 30, 03:09 491
2408 -22906206, // 1962 Sep 28, 19:39 492
2409 -22649370, // 1962 Oct 28, 13:05 493
2410 -22392546, // 1962 Nov 27, 06:29 494
2411 -22136046, // 1962 Dec 26, 22:59 495
2412 -21880188, // 1963 Jan 25, 13:42 496
2413 -21625164, // 1963 Feb 24, 02:06 497
2414 -21370986, // 1963 Mar 25, 12:09 498
2415 -21117432, // 1963 Apr 23, 20:28 499
2416 -20864160, // 1963 May 23, 04:00 500
2417 -20610804, // 1963 Jun 21, 11:46 501
2418 -20357022, // 1963 Jul 20, 20:43 502
2419 -20102556, // 1963 Aug 19, 07:34 503
2420 -19847214, // 1963 Sep 17, 20:51 504
2421 -19590942, // 1963 Oct 17, 12:43 505
2422 -19333860, // 1963 Nov 16, 06:50 506
2423 -19076364, // 1963 Dec 16, 02:06 507
2424 -18819096, // 1964 Jan 14, 20:44 508
2425 -18562674, // 1964 Feb 13, 13:01 509
2426 -18307356, // 1964 Mar 14, 02:14 510
2427 -18053052, // 1964 Apr 12, 12:38 511
2428 -17799468, // 1964 May 11, 21:02 512
2429 -17546268, // 1964 Jun 10, 04:22 513
2430 -17293134, // 1964 Jul 9, 11:31 514
2431 -17039778, // 1964 Aug 7, 19:17 515
2432 -16785876, // 1964 Sep 6, 04:34 516
2433 -16531080, // 1964 Oct 5, 16:20 517
2434 -16275144, // 1964 Nov 4, 07:16 518
2435 -16018092, // 1964 Dec 4, 01:18 519
2436 -15760398, // 1965 Jan 2, 21:07 520
2437 -15502824, // 1965 Feb 1, 16:36 521
2438 -15246024, // 1965 Mar 3, 09:56 522
2439 -14990274, // 1965 Apr 2, 00:21 523
2440 -14735544, // 1965 May 1, 11:56 524
2441 -14481642, // 1965 May 30, 21:13 525
2442 -14228322, // 1965 Jun 29, 04:53 526
2443 -13975290, // 1965 Jul 28, 11:45 527
2444 -13722174, // 1965 Aug 26, 18:51 528
2445 -13468572, // 1965 Sep 25, 03:18 529
2446 -13214088, // 1965 Oct 24, 14:12 530
2447 -12958500, // 1965 Nov 23, 04:10 531
2448 -12701862, // 1965 Dec 22, 21:03 532
2449 -12444558, // 1966 Jan 21, 15:47 533
2450 -12187146, // 1966 Feb 20, 10:49 534
2451 -11930124, // 1966 Mar 22, 04:46 535
2452 -11673870, // 1966 Apr 20, 20:35 536
2453 -11418582, // 1966 May 20, 09:43 537
2454 -11164266, // 1966 Jun 18, 20:09 538
2455 -10910700, // 1966 Jul 18, 04:30 539
2456 -10657512, // 1966 Aug 16, 11:48 540
2457 -10404282, // 1966 Sep 14, 19:13 541
2458 -10150608, // 1966 Oct 14, 03:52 542
2459 -9896238, // 1966 Nov 12, 14:27 543
2460 -9641076, // 1966 Dec 12, 03:14 544
2461 -9385164, // 1967 Jan 10, 18:06 545
2462 -9128616, // 1967 Feb 9, 10:44 546
2463 -8871660, // 1967 Mar 11, 04:30 547
2464 -8614680, // 1967 Apr 9, 22:20 548
2465 -8358150, // 1967 May 9, 14:55 549
2466 -8102436, // 1967 Jun 8, 05:14 550
2467 -7847640, // 1967 Jul 7, 17:00 551
2468 -7593552, // 1967 Aug 6, 02:48 552
2469 -7339818, // 1967 Sep 4, 11:37 553
2470 -7086096, // 1967 Oct 3, 20:24 554
2471 -6832152, // 1967 Nov 2, 05:48 555
2472 -6577860, // 1967 Dec 1, 16:10 556
2473 -6323166, // 1967 Dec 31, 03:39 557
2474 -6067980, // 1968 Jan 29, 16:30 558
2475 -5812224, // 1968 Feb 28, 06:56 559
2476 -5555952, // 1968 Mar 28, 22:48 560
2477 -5299434, // 1968 Apr 27, 15:21 561
2478 -5043060, // 1968 May 27, 07:30 562
2479 -4787130, // 1968 Jun 25, 22:25 563
2480 -4531740, // 1968 Jul 25, 11:50 564
2481 -4276818, // 1968 Aug 23, 23:57 565
2482 -4022232, // 1968 Sep 22, 11:08 566
2483 -3767856, // 1968 Oct 21, 21:44 567
2484 -3513588, // 1968 Nov 20, 08:02 568
2485 -3259326, // 1968 Dec 19, 18:19 569
2486 -3004926, // 1969 Jan 18, 04:59 570
2487 -2750250, // 1969 Feb 16, 16:25 571
2488 -2495208, // 1969 Mar 18, 04:52 572
2489 -2239824, // 1969 Apr 16, 18:16 573
2490 -1984164, // 1969 May 16, 08:26 574
2491 -1728306, // 1969 Jun 14, 23:09 575
2492 -1472328, // 1969 Jul 14, 14:12 576
2493 -1216338, // 1969 Aug 13, 05:17 577
2494 -960504, // 1969 Sep 11, 19:56 578
2495 -705006, // 1969 Oct 11, 09:39 579
2496 -449934, // 1969 Nov 9, 22:11 580
2497 -195228, // 1969 Dec 9, 09:42 581
2498 59250, // 1970 Jan 7, 20:35 582
2499 313638, // 1970 Feb 6, 07:13 583
2500 567978, // 1970 Mar 7, 17:43 584
2501 822300, // 1970 Apr 6, 04:10 585
2502 1076706, // 1970 May 5, 14:51 586
2503 1331406, // 1970 Jun 4, 02:21 587
2504 1586628, // 1970 Jul 3, 15:18 588
2505 1842468, // 1970 Aug 2, 05:58 589
2506 2098812, // 1970 Aug 31, 22:02 590
2507 2355312, // 1970 Sep 30, 14:32 591
2508 2611608, // 1970 Oct 30, 06:28 592
2509 2867484, // 1970 Nov 28, 21:14 593
2510 3122892, // 1970 Dec 28, 10:42 594
2511 3377850, // 1971 Jan 26, 22:55 595
2512 3632328, // 1971 Feb 25, 09:48 596
2513 3886338, // 1971 Mar 26, 19:23 597
2514 4140012, // 1971 Apr 25, 04:02 598
2515 4393632, // 1971 May 24, 12:32 599
2516 4647582, // 1971 Jun 22, 21:57 600
2517 4902210, // 1971 Jul 22, 09:15 601
2518 5157678, // 1971 Aug 20, 22:53 602
2519 5413938, // 1971 Sep 19, 14:43 603
2520 5670714, // 1971 Oct 19, 07:59 604
2521 5927676, // 1971 Nov 18, 01:46 605
2522 6184458, // 1971 Dec 17, 19:03 606
2523 6440712, // 1972 Jan 16, 10:52 607
2524 6696174, // 1972 Feb 15, 00:29 608
2525 6950730, // 1972 Mar 15, 11:35 609
2526 7204506, // 1972 Apr 13, 20:31 610
2527 7457808, // 1972 May 13, 04:08 611
2528 7711020, // 1972 Jun 11, 11:30 612
2529 7964514, // 1972 Jul 10, 19:39 613
2530 8218596, // 1972 Aug 9, 05:26 614
2531 8473488, // 1972 Sep 7, 17:28 615
2532 8729328, // 1972 Oct 7, 08:08 616
2533 8986086, // 1972 Nov 6, 01:21 617
2534 9243504, // 1972 Dec 5, 20:24 618
2535 9501018, // 1973 Jan 4, 15:43 619
2536 9757938, // 1973 Feb 3, 09:23 620
2537 10013802, // 1973 Mar 5, 00:07 621
2538 10268550, // 1973 Apr 3, 11:45 622
2539 10522410, // 1973 May 2, 20:55 623
2540 10775724, // 1973 Jun 1, 04:34 624
2541 11028834, // 1973 Jun 30, 11:39 625
2542 11282034, // 1973 Jul 29, 18:59 626
2543 11535630, // 1973 Aug 28, 03:25 627
2544 11789964, // 1973 Sep 26, 13:54 628
2545 12045342, // 1973 Oct 26, 03:17 629
2546 12301890, // 1973 Nov 24, 19:55 630
2547 12559362, // 1973 Dec 24, 15:07 631
2548 12817092, // 1974 Jan 23, 11:02 632
2549 13074324, // 1974 Feb 22, 05:34 633
2550 13330584, // 1974 Mar 23, 21:24 634
2551 13585782, // 1974 Apr 22, 10:17 635
2552 13840044, // 1974 May 21, 20:34 636
2553 14093616, // 1974 Jun 20, 04:56 637
2554 14346756, // 1974 Jul 19, 12:06 638
2555 14599806, // 1974 Aug 17, 19:01 639
2556 14853150, // 1974 Sep 16, 02:45 640
2557 15107190, // 1974 Oct 15, 12:25 641
2558 15362238, // 1974 Nov 14, 00:53 642
2559 15618390, // 1974 Dec 13, 16:25 643
2560 15875400, // 1975 Jan 12, 10:20 644
2561 16132782, // 1975 Feb 11, 05:17 645
2562 16390008, // 1975 Mar 12, 23:48 646
2563 16646634, // 1975 Apr 11, 16:39 647
2564 16902390, // 1975 May 11, 07:05 648
2565 17157174, // 1975 Jun 9, 18:49 649
2566 17411100, // 1975 Jul 9, 04:10 650
2567 17664462, // 1975 Aug 7, 11:57 651
2568 17917668, // 1975 Sep 5, 19:18 652
2569 18171138, // 1975 Oct 5, 03:23 653
2570 18425184, // 1975 Nov 3, 13:04 654
2571 18679980, // 1975 Dec 3, 00:50 655
2572 18935520, // 1976 Jan 1, 14:40 656
2573 19191720, // 1976 Jan 31, 06:20 657
2574 19448430, // 1976 Feb 29, 23:25 658
2575 19705368, // 1976 Mar 30, 17:08 659
2576 19962120, // 1976 Apr 29, 10:20 660
2577 20218242, // 1976 May 29, 01:47 661
2578 20473500, // 1976 Jun 27, 14:50 662
2579 20727954, // 1976 Jul 27, 01:39 663
2580 20981880, // 1976 Aug 25, 11:00 664
2581 21235650, // 1976 Sep 23, 19:55 665
2582 21489540, // 1976 Oct 23, 05:10 666
2583 21743706, // 1976 Nov 21, 15:11 667
2584 21998208, // 1976 Dec 21, 02:08 668
2585 22253106, // 1977 Jan 19, 14:11 669
2586 22508502, // 1977 Feb 18, 03:37 670
2587 22764438, // 1977 Mar 19, 18:33 671
2588 23020776, // 1977 Apr 18, 10:36 672
2589 23277192, // 1977 May 18, 02:52 673
2590 23533338, // 1977 Jun 16, 18:23 674
2591 23789022, // 1977 Jul 16, 08:37 675
2592 24044226, // 1977 Aug 14, 21:31 676
2593 24299058, // 1977 Sep 13, 09:23 677
2594 24553626, // 1977 Oct 12, 20:31 678
2595 24808020, // 1977 Nov 11, 07:10 679
2596 25062318, // 1977 Dec 10, 17:33 680
2597 25316640, // 1978 Jan 9, 04:00 681
2598 25571124, // 1978 Feb 7, 14:54 682
2599 25825896, // 1978 Mar 9, 02:36 683
2600 26081010, // 1978 Apr 7, 15:15 684
2601 26336442, // 1978 May 7, 04:47 685
2602 26592132, // 1978 Jun 5, 19:02 686
2603 26848026, // 1978 Jul 5, 09:51 687
2604 27104046, // 1978 Aug 4, 01:01 688
2605 27360054, // 1978 Sep 2, 16:09 689
2606 27615846, // 1978 Oct 2, 06:41 690
2607 27871236, // 1978 Oct 31, 20:06 691
2608 28126194, // 1978 Nov 30, 08:19 692
2609 28380816, // 1978 Dec 29, 19:36 693
2610 28635234, // 1979 Jan 28, 06:19 694
2611 28889550, // 1979 Feb 26, 16:45 695
2612 29143794, // 1979 Mar 28, 02:59 696
2613 29398050, // 1979 Apr 26, 13:15 697
2614 29652480, // 1979 May 26, 00:00 698
2615 29907348, // 1979 Jun 24, 11:58 699
2616 30162846, // 1979 Jul 24, 01:41 700
2617 30418986, // 1979 Aug 22, 17:11 701
2618 30675522, // 1979 Sep 21, 09:47 702
2619 30932058, // 1979 Oct 21, 02:23 703
2620 31188264, // 1979 Nov 19, 18:04 704
2621 31443978, // 1979 Dec 19, 08:23 705
2622 31699200, // 1980 Jan 17, 21:20 706
2623 31953906, // 1980 Feb 16, 08:51 707
2624 32208096, // 1980 Mar 16, 18:56 708
2625 32461836, // 1980 Apr 15, 03:46 709
2626 32715360, // 1980 May 14, 12:00 710
2627 32969034, // 1980 Jun 12, 20:39 711
2628 33223236, // 1980 Jul 12, 06:46 712
2629 33478260, // 1980 Aug 10, 19:10 713
2630 33734166, // 1980 Sep 9, 10:01 714
2631 33990780, // 1980 Oct 9, 02:50 715
2632 34247778, // 1980 Nov 7, 20:43 716
2633 34504770, // 1980 Dec 7, 14:35 717
2634 34761384, // 1981 Jan 6, 07:24 718
2635 35017284, // 1981 Feb 4, 22:14 719
2636 35272266, // 1981 Mar 6, 10:31 720
2637 35526360, // 1981 Apr 4, 20:20 721
2638 35779794, // 1981 May 4, 04:19 722
2639 36032952, // 1981 Jun 2, 11:32 723
2640 36286218, // 1981 Jul 1, 19:03 724
2641 36539952, // 1981 Jul 31, 03:52 725
2642 36794424, // 1981 Aug 29, 14:44 726
2643 37049808, // 1981 Sep 28, 04:08 727
2644 37306164, // 1981 Oct 27, 20:14 728
2645 37563348, // 1981 Nov 26, 14:38 729
2646 37820940, // 1981 Dec 26, 10:10 730
2647 38078256, // 1982 Jan 25, 04:56 731
2648 38334684, // 1982 Feb 23, 21:14 732
2649 38589948, // 1982 Mar 25, 10:18 733
2650 38844174, // 1982 Apr 23, 20:29 734
2651 39097686, // 1982 May 23, 04:41 735
2652 39350832, // 1982 Jun 21, 11:52 736
2653 39603942, // 1982 Jul 20, 18:57 737
2654 39857310, // 1982 Aug 19, 02:45 738
2655 40111254, // 1982 Sep 17, 12:09 739
2656 40366104, // 1982 Oct 17, 00:04 740
2657 40622100, // 1982 Nov 15, 15:10 741
2658 40879188, // 1982 Dec 15, 09:18 742
2659 41136888, // 1983 Jan 14, 05:08 743
2660 41394432, // 1983 Feb 13, 00:32 744
2661 41651184, // 1983 Mar 14, 17:44 745
2662 41906874, // 1983 Apr 13, 07:59 746
2663 42161550, // 1983 May 12, 19:25 747
2664 42415428, // 1983 Jun 11, 04:38 748
2665 42668754, // 1983 Jul 10, 12:19 749
2666 42921828, // 1983 Aug 8, 19:18 750
2667 43175010, // 1983 Sep 7, 02:35 751
2668 43428696, // 1983 Oct 6, 11:16 752
2669 43683246, // 1983 Nov 4, 22:21 753
2670 43938876, // 1983 Dec 4, 12:26 754
2671 44195496, // 1984 Jan 3, 05:16 755
2672 44452722, // 1984 Feb 1, 23:47 756
2673 44710026, // 1984 Mar 2, 18:31 757
2674 44966940, // 1984 Apr 1, 12:10 758
2675 45223116, // 1984 May 1, 03:46 759
2676 45478368, // 1984 May 30, 16:48 760
2677 45732714, // 1984 Jun 29, 03:19 761
2678 45986346, // 1984 Jul 28, 11:51 762
2679 46239636, // 1984 Aug 26, 19:26 763
2680 46492986, // 1984 Sep 25, 03:11 764
2681 46746768, // 1984 Oct 24, 12:08 765
2682 47001222, // 1984 Nov 22, 22:57 766
2683 47256402, // 1984 Dec 22, 11:47 767
2684 47512248, // 1985 Jan 21, 02:28 768
2685 47768658, // 1985 Feb 19, 18:43 769
2686 48025434, // 1985 Mar 21, 11:59 770
2687 48282252, // 1985 Apr 20, 05:22 771
2688 48538686, // 1985 May 19, 21:41 772
2689 48794388, // 1985 Jun 18, 11:58 773
2690 49049262, // 1985 Jul 17, 23:57 774
2691 49303476, // 1985 Aug 16, 10:06 775
2692 49557360, // 1985 Sep 14, 19:20 776
2693 49811238, // 1985 Oct 14, 04:33 777
2694 50065326, // 1985 Nov 12, 14:21 778
2695 50319690, // 1985 Dec 12, 00:55 779
2696 50574372, // 1986 Jan 10, 12:22 780
2697 50829456, // 1986 Feb 9, 00:56 781
2698 51085032, // 1986 Mar 10, 14:52 782
2699 51341088, // 1986 Apr 9, 06:08 783
2700 51597420, // 1986 May 8, 22:10 784
2701 51853686, // 1986 Jun 7, 14:01 785
2702 52109610, // 1986 Jul 7, 04:55 786
2703 52365096, // 1986 Aug 5, 18:36 787
2704 52620186, // 1986 Sep 4, 07:11 788
2705 52874970, // 1986 Oct 3, 18:55 789
2706 53129532, // 1986 Nov 2, 06:02 790
2707 53383938, // 1986 Dec 1, 16:43 791
2708 53638260, // 1986 Dec 31, 03:10 792
2709 53892630, // 1987 Jan 29, 13:45 793
2710 54147186, // 1987 Feb 28, 00:51 794
2711 54402036, // 1987 Mar 29, 12:46 795
2712 54657204, // 1987 Apr 28, 01:34 796
2713 54912678, // 1987 May 27, 15:13 797
2714 55168422, // 1987 Jun 26, 05:37 798
2715 55424388, // 1987 Jul 25, 20:38 799
2716 55680474, // 1987 Aug 24, 11:59 800
2717 55936494, // 1987 Sep 23, 03:09 801
2718 56192208, // 1987 Oct 22, 17:28 802
2719 56447478, // 1987 Nov 21, 06:33 803
2720 56702310, // 1987 Dec 20, 18:25 804
2721 56956836, // 1988 Jan 19, 05:26 805
2722 57211164, // 1988 Feb 17, 15:54 806
2723 57465372, // 1988 Mar 18, 02:02 807
2724 57719520, // 1988 Apr 16, 12:00 808
2725 57973746, // 1988 May 15, 22:11 809
2726 58228284, // 1988 Jun 14, 09:14 810
2727 58483398, // 1988 Jul 13, 21:53 811
2728 58739226, // 1988 Aug 12, 12:31 812
2729 58995660, // 1988 Sep 11, 04:50 813
2730 59252334, // 1988 Oct 10, 21:49 814
2731 59508840, // 1988 Nov 9, 14:20 815
2732 59764896, // 1988 Dec 9, 05:36 816
2733 60020412, // 1989 Jan 7, 19:22 817
2734 60275382, // 1989 Feb 6, 07:37 818
2735 60529794, // 1989 Mar 7, 18:19 819
2736 60783678, // 1989 Apr 6, 03:33 820
2737 61037202, // 1989 May 5, 11:47 821
2738 61290678, // 1989 Jun 3, 19:53 822
2739 61544514, // 1989 Jul 3, 04:59 823
2740 61799076, // 1989 Aug 1, 16:06 824
2741 62054550, // 1989 Aug 31, 05:45 825
2742 62310888, // 1989 Sep 29, 21:48 826
2743 62567808, // 1989 Oct 29, 15:28 827
2744 62824926, // 1989 Nov 28, 09:41 828
2745 63081840, // 1989 Dec 28, 03:20 829
2746 63338160, // 1990 Jan 26, 19:20 830
2747 63593610, // 1990 Feb 25, 08:55 831
2748 63848088, // 1990 Mar 26, 19:48 832
2749 64101768, // 1990 Apr 25, 04:28 833
2750 64354962, // 1990 May 24, 11:47 834
2751 64608090, // 1990 Jun 22, 18:55 835
2752 64861524, // 1990 Jul 22, 02:54 836
2753 65115594, // 1990 Aug 20, 12:39 837
2754 65370516, // 1990 Sep 19, 00:46 838
2755 65626422, // 1990 Oct 18, 15:37 839
2756 65883270, // 1990 Nov 17, 09:05 840
2757 66140772, // 1990 Dec 17, 04:22 841
2758 66398340, // 1991 Jan 15, 23:50 842
2759 66655272, // 1991 Feb 14, 17:32 843
2760 66911106, // 1991 Mar 16, 08:11 844
2761 67165788, // 1991 Apr 14, 19:38 845
2762 67419576, // 1991 May 14, 04:36 846
2763 67672836, // 1991 Jun 12, 12:06 847
2764 67925916, // 1991 Jul 11, 19:06 848
2765 68179122, // 1991 Aug 10, 02:27 849
2766 68432766, // 1991 Sep 8, 11:01 850
2767 68687154, // 1991 Oct 7, 21:39 851
2768 68942586, // 1991 Nov 6, 11:11 852
2769 69199176, // 1991 Dec 6, 03:56 853
2770 69456660, // 1992 Jan 4, 23:10 854
2771 69714360, // 1992 Feb 3, 19:00 855
2772 69971538, // 1992 Mar 4, 13:23 856
2773 70227732, // 1992 Apr 3, 05:02 857
2774 70482870, // 1992 May 2, 17:45 858
2775 70737102, // 1992 Jun 1, 03:57 859
2776 70990668, // 1992 Jun 30, 12:18 860
2777 71243850, // 1992 Jul 29, 19:35 861
2778 71496972, // 1992 Aug 28, 02:42 862
2779 71750400, // 1992 Sep 26, 10:40 863
2780 72004524, // 1992 Oct 25, 20:34 864
2781 72259626, // 1992 Nov 24, 09:11 865
2782 72515778, // 1992 Dec 24, 00:43 866
2783 72772722, // 1993 Jan 22, 18:27 867
2784 73029996, // 1993 Feb 21, 13:06 868
2785 73287090, // 1993 Mar 23, 07:15 869
2786 73543614, // 1993 Apr 21, 23:49 870
2787 73799322, // 1993 May 21, 14:07 871
2788 74054118, // 1993 Jun 20, 01:53 872
2789 74308104, // 1993 Jul 19, 11:24 873
2790 74561568, // 1993 Aug 17, 19:28 874
2791 74814900, // 1993 Sep 16, 03:10 875
2792 75068496, // 1993 Oct 15, 11:36 876
2793 75322644, // 1993 Nov 13, 21:34 877
2794 75577482, // 1993 Dec 13, 09:27 878
2795 75832980, // 1994 Jan 11, 23:10 879
2796 76089060, // 1994 Feb 10, 14:30 880
2797 76345590, // 1994 Mar 12, 07:05 881
2798 76602342, // 1994 Apr 11, 00:17 882
2799 76858962, // 1994 May 10, 17:07 883
2800 77115042, // 1994 Jun 9, 08:27 884
2801 77370342, // 1994 Jul 8, 21:37 885
2802 77624910, // 1994 Aug 7, 08:45 886
2803 77878998, // 1994 Sep 5, 18:33 887
2804 78132930, // 1994 Oct 5, 03:55 888
2805 78386970, // 1994 Nov 3, 13:35 889
2806 78641244, // 1994 Dec 2, 23:54 890
2807 78895770, // 1995 Jan 1, 10:55 891
2808 79150608, // 1995 Jan 30, 22:48 892
2809 79405848, // 1995 Mar 1, 11:48 893
2810 79661568, // 1995 Mar 31, 02:08 894
2811 79917696, // 1995 Apr 29, 17:36 895
2812 80173962, // 1995 May 29, 09:27 896
2813 80430060, // 1995 Jun 28, 00:50 897
2814 80685798, // 1995 Jul 27, 15:13 898
2815 80941146, // 1995 Aug 26, 04:31 899
2816 81196170, // 1995 Sep 24, 16:55 900
2817 81450936, // 1995 Oct 24, 04:36 901
2818 81705498, // 1995 Nov 22, 15:43 902
2819 81959892, // 1995 Dec 22, 02:22 903
2820 82214220, // 1996 Jan 20, 12:50 904
2821 82468620, // 1996 Feb 18, 23:30 905
2822 82723230, // 1996 Mar 19, 10:45 906
2823 82978134, // 1996 Apr 17, 22:49 907
2824 83233356, // 1996 May 17, 11:46 908
2825 83488896, // 1996 Jun 16, 01:36 909
2826 83744730, // 1996 Jul 15, 16:15 910
2827 84000804, // 1996 Aug 14, 07:34 911
2828 84256968, // 1996 Sep 12, 23:08 912
2829 84512970, // 1996 Oct 12, 14:15 913
2830 84768576, // 1996 Nov 11, 04:16 914
2831 85023696, // 1996 Dec 10, 16:56 915
2832 85278396, // 1997 Jan 9, 04:26 916
2833 85532796, // 1997 Feb 7, 15:06 917
2834 85787004, // 1997 Mar 9, 01:14 918
2835 86041092, // 1997 Apr 7, 11:02 919
2836 86295162, // 1997 May 6, 20:47 920
2837 86549424, // 1997 Jun 5, 07:04 921
2838 86804160, // 1997 Jul 4, 18:40 922
2839 87059604, // 1997 Aug 3, 08:14 923
2840 87315792, // 1997 Sep 1, 23:52 924
2841 87572472, // 1997 Oct 1, 16:52 925
2842 87829212, // 1997 Oct 31, 10:02 926
2843 88085604, // 1997 Nov 30, 02:14 927
2844 88341462, // 1997 Dec 29, 16:57 928
2845 88596726, // 1998 Jan 28, 06:01 929
2846 88851396, // 1998 Feb 26, 17:26 930
2847 89105484, // 1998 Mar 28, 03:14 931
2848 89359086, // 1998 Apr 26, 11:41 932
2849 89612472, // 1998 May 25, 19:32 933
2850 89866020, // 1998 Jun 24, 03:50 934
2851 90120144, // 1998 Jul 23, 13:44 935
2852 90375138, // 1998 Aug 22, 02:03 936
2853 90631092, // 1998 Sep 20, 17:02 937
2854 90887820, // 1998 Oct 20, 10:10 938
2855 91144962, // 1998 Nov 19, 04:27 939
2856 91402098, // 1998 Dec 18, 22:43 940
2857 91658796, // 1999 Jan 17, 15:46 941
2858 91914714, // 1999 Feb 16, 06:39 942
2859 92169648, // 1999 Mar 17, 18:48 943
2860 92423652, // 1999 Apr 16, 04:22 944
2861 92676990, // 1999 May 15, 12:05 945
2862 92930058, // 1999 Jun 13, 19:03 946
2863 93183264, // 1999 Jul 13, 02:24 947
2864 93436974, // 1999 Aug 11, 11:09 948
2865 93691452, // 1999 Sep 9, 22:02 949
2866 93946890, // 1999 Oct 9, 11:35 950
2867 94203318, // 1999 Nov 8, 03:53 951
2868 94460592, // 1999 Dec 7, 22:32 952
2869 94718244, // 2000 Jan 6, 18:14 953
2870 94975584, // 2000 Feb 5, 13:04 954
2871 95231982, // 2000 Mar 6, 05:17 955
2872 95487192, // 2000 Apr 4, 18:12 956
2873 95741352, // 2000 May 4, 04:12 957
2874 95994804, // 2000 Jun 2, 12:14 958
2875 96247920, // 2000 Jul 1, 19:20 959
2876 96501030, // 2000 Jul 31, 02:25 960
2877 96754434, // 2000 Aug 29, 10:19 961
2878 97008438, // 2000 Sep 27, 19:53 962
2879 97263348, // 2000 Oct 27, 07:58 963
2880 97519392, // 2000 Nov 25, 23:12 964
2881 97776492, // 2000 Dec 25, 17:22 965
2882 98034162, // 2001 Jan 24, 13:07 966
2883 98291652, // 2001 Feb 23, 08:22 967
2884 98548332, // 2001 Mar 25, 01:22 968
2885 98803956, // 2001 Apr 23, 15:26 969
2886 99058602, // 2001 May 23, 02:47 970
2887 99312468, // 2001 Jun 21, 11:58 971
2888 99565830, // 2001 Jul 20, 19:45 972
2889 99818970, // 2001 Aug 19, 02:55 973
2890 100072248, // 2001 Sep 17, 10:28 974
2891 100326024, // 2001 Oct 16, 19:24 975
2892 100580640, // 2001 Nov 15, 06:40 976
2893 100836288, // 2001 Dec 14, 20:48 977
2894 101092854, // 2002 Jan 13, 13:29 978
2895 101349966, // 2002 Feb 12, 07:41 979
2896 101607138, // 2002 Mar 14, 02:03 980
2897 101863926, // 2002 Apr 12, 19:21 981
2898 102120030, // 2002 May 12, 10:45 982
2899 102375282, // 2002 Jun 10, 23:47 983
2900 102629676, // 2002 Jul 10, 10:26 984
2901 102883410, // 2002 Aug 8, 19:15 985
2902 103136820, // 2002 Sep 7, 03:10 986
2903 103390308, // 2002 Oct 6, 11:18 987
2904 103644210, // 2002 Nov 4, 20:35 988
2905 103898730, // 2002 Dec 4, 07:35 989
2906 104153898, // 2003 Jan 2, 20:23 990
2907 104409654, // 2003 Feb 1, 10:49 991
2908 104665890, // 2003 Mar 3, 02:35 992
2909 104922468, // 2003 Apr 1, 19:18 993
2910 105179130, // 2003 May 1, 12:15 994
2911 105435480, // 2003 May 31, 04:20 995
2912 105691194, // 2003 Jun 29, 18:39 996
2913 105946158, // 2003 Jul 29, 06:53 997
2914 106200516, // 2003 Aug 27, 17:26 998
2915 106454574, // 2003 Sep 26, 03:09 999
2916 106708620, // 2003 Oct 25, 12:50 1000
2917 106962834, // 2003 Nov 23, 22:59 1001
2918 107217258, // 2003 Dec 23, 09:43 1002
2919 107471910, // 2004 Jan 21, 21:05 1003
2920 107726868, // 2004 Feb 20, 09:18 1004
2921 107982246, // 2004 Mar 20, 22:41 1005
2922 108238086, // 2004 Apr 19, 13:21 1006
2923 108494232, // 2004 May 19, 04:52 1007
2924 108750402, // 2004 Jun 17, 20:27 1008
2925 109006344, // 2004 Jul 17, 11:24 1009
2926 109261944, // 2004 Aug 16, 01:24 1010
2927 109517214, // 2004 Sep 14, 14:29 1011
2928 109772208, // 2004 Oct 14, 02:48 1012
2929 110026962, // 2004 Nov 12, 14:27 1013
2930 110281494, // 2004 Dec 12, 01:29 1014
2931 110535858, // 2005 Jan 10, 12:03 1015
2932 110790168, // 2005 Feb 8, 22:28 1016
2933 111044586, // 2005 Mar 10, 09:11 1017
2934 111299232, // 2005 Apr 8, 20:32 1018
2935 111554190, // 2005 May 8, 08:45 1019
2936 111809490, // 2005 Jun 6, 21:55 1020
2937 112065138, // 2005 Jul 6, 12:03 1021
2938 112321110, // 2005 Aug 5, 03:05 1022
2939 112577316, // 2005 Sep 3, 18:46 1023
2940 112833528, // 2005 Oct 3, 10:28 1024
2941 113089470, // 2005 Nov 2, 01:25 1025
2942 113344926, // 2005 Dec 1, 15:01 1026
2943 113599872, // 2005 Dec 31, 03:12 1027
2944 113854410, // 2006 Jan 29, 14:15 1028
2945 114108666, // 2006 Feb 28, 00:31 1029
2946 114362730, // 2006 Mar 29, 10:15 1030
2947 114616704, // 2006 Apr 27, 19:44 1031
2948 114870756, // 2006 May 27, 05:26 1032
2949 115125150, // 2006 Jun 25, 16:05 1033
2950 115380186, // 2006 Jul 25, 04:31 1034
2951 115636020, // 2006 Aug 23, 19:10 1035
2952 115892550, // 2006 Sep 22, 11:45 1036
2953 116149404, // 2006 Oct 22, 05:14 1037
2954 116406108, // 2006 Nov 20, 22:18 1038
2955 116662326, // 2006 Dec 20, 14:01 1039
2956 116917926, // 2007 Jan 19, 04:01 1040
2957 117172884, // 2007 Feb 17, 16:14 1041
2958 117427218, // 2007 Mar 19, 02:43 1042
2959 117680976, // 2007 Apr 17, 11:36 1043
2960 117934362, // 2007 May 16, 19:27 1044
2961 118187718, // 2007 Jun 15, 03:13 1045
2962 118441464, // 2007 Jul 14, 12:04 1046
2963 118695972, // 2007 Aug 12, 23:02 1047
2964 118951464, // 2007 Sep 11, 12:44 1048
2965 119207886, // 2007 Oct 11, 05:01 1049
2966 119464938, // 2007 Nov 9, 23:03 1050
2967 119722200, // 2007 Dec 9, 17:40 1051
2968 119979222, // 2008 Jan 8, 11:37 1052
2969 120235584, // 2008 Feb 7, 03:44 1053
2970 120491004, // 2008 Mar 7, 17:14 1054
2971 120745410, // 2008 Apr 6, 03:55 1055
2972 120998988, // 2008 May 5, 12:18 1056
2973 121252098, // 2008 Jun 3, 19:23 1057
2974 121505154, // 2008 Jul 3, 02:19 1058
2975 121758552, // 2008 Aug 1, 10:12 1059
2976 122012628, // 2008 Aug 30, 19:58 1060
2977 122267592, // 2008 Sep 29, 08:12 1061
2978 122523564, // 2008 Oct 28, 23:14 1062
2979 122780490, // 2008 Nov 27, 16:55 1063
2980 123038058, // 2008 Dec 27, 12:23 1064
2981 123295656, // 2009 Jan 26, 07:56 1065
2982 123552570, // 2009 Feb 25, 01:35 1066
2983 123808356, // 2009 Mar 26, 16:06 1067
2984 124062978, // 2009 Apr 25, 03:23 1068
2985 124316706, // 2009 May 24, 12:11 1069
2986 124569930, // 2009 Jun 22, 19:35 1070
2987 124823010, // 2009 Jul 22, 02:35 1071
2988 125076246, // 2009 Aug 20, 10:01 1072
2989 125329944, // 2009 Sep 18, 18:44 1073
2990 125584398, // 2009 Oct 18, 05:33 1074
2991 125839884, // 2009 Nov 16, 19:14 1075
2992 126096492, // 2009 Dec 16, 12:02 1076
2993 126353952, // 2010 Jan 15, 07:12 1077
2994 126611592, // 2010 Feb 14, 02:52 1078
2995 126868686, // 2010 Mar 15, 21:01 1079
2996 127124814, // 2010 Apr 14, 12:29 1080
2997 127379910, // 2010 May 14, 01:05 1081
2998 127634130, // 2010 Jun 12, 11:15 1082
2999 127887726, // 2010 Jul 11, 19:41 1083
3000 128140968, // 2010 Aug 10, 03:08 1084
3001 128394180, // 2010 Sep 8, 10:30 1085
3002 128647704, // 2010 Oct 7, 18:44 1086
3003 128901912, // 2010 Nov 6, 04:52 1087
3004 129157056, // 2010 Dec 5, 17:36 1088
3005 129413178, // 2011 Jan 4, 09:03 1089
3006 129670026, // 2011 Feb 3, 02:31 1090
3007 129927156, // 2011 Mar 4, 20:46 1091
3008 130184112, // 2011 Apr 3, 14:32 1092
3009 130440546, // 2011 May 3, 06:51 1093
3010 130696218, // 2011 Jun 1, 21:03 1094
3011 130951044, // 2011 Jul 1, 08:54 1095
3012 131205120, // 2011 Jul 30, 18:40 1096
3013 131458704, // 2011 Aug 29, 03:04 1097
3014 131712174, // 2011 Sep 27, 11:09 1098
3015 131965896, // 2011 Oct 26, 19:56 1099
3016 132220140, // 2011 Nov 25, 06:10 1100
3017 132474996, // 2011 Dec 24, 18:06 1101
3018 132730434, // 2012 Jan 23, 07:39 1102
3019 132986370, // 2012 Feb 21, 22:35 1103
3020 133242702, // 2012 Mar 22, 14:37 1104
3021 133499274, // 2012 Apr 21, 07:19 1105
3022 133755762, // 2012 May 20, 23:47 1106
3023 134011818, // 2012 Jun 19, 15:03 1107
3024 134267190, // 2012 Jul 19, 04:25 1108
3025 134521890, // 2012 Aug 17, 15:55 1109
3026 134776146, // 2012 Sep 16, 02:11 1110
3027 135030258, // 2012 Oct 15, 12:03 1111
3028 135284448, // 2012 Nov 13, 22:08 1112
3029 135538812, // 2012 Dec 13, 08:42 1113
3030 135793344, // 2013 Jan 11, 19:44 1114
3031 136048080, // 2013 Feb 10, 07:20 1115
3032 136303146, // 2013 Mar 11, 19:51 1116
3033 136558656, // 2013 Apr 10, 09:36 1117
3034 136814574, // 2013 May 10, 00:29 1118
3035 137070702, // 2013 Jun 8, 15:57 1119
3036 137326770, // 2013 Jul 8, 07:15 1120
3037 137582586, // 2013 Aug 6, 21:51 1121
3038 137838102, // 2013 Sep 5, 11:37 1122
3039 138093330, // 2013 Oct 5, 00:35 1123
3040 138348300, // 2013 Nov 3, 12:50 1124
3041 138603018, // 2013 Dec 3, 00:23 1125
3042 138857484, // 2014 Jan 1, 11:14 1126
3043 139111794, // 2014 Jan 30, 21:39 1127
3044 139366080, // 2014 Mar 1, 08:00 1128
3045 139620510, // 2014 Mar 30, 18:45 1129
3046 139875210, // 2014 Apr 29, 06:15 1130
3047 140130240, // 2014 May 28, 18:40 1131
3048 140385654, // 2014 Jun 27, 08:09 1132
3049 140641452, // 2014 Jul 26, 22:42 1133
3050 140897598, // 2014 Aug 25, 14:13 1134
3051 141153924, // 2014 Sep 24, 06:14 1135
3052 141410142, // 2014 Oct 23, 21:57 1136
3053 141665958, // 2014 Nov 22, 12:33 1137
3054 141921216, // 2014 Dec 22, 01:36 1138
3055 142175964, // 2015 Jan 20, 13:14 1139
3056 142430322, // 2015 Feb 18, 23:47 1140
3057 142684416, // 2015 Mar 20, 09:36 1141
3058 142938342, // 2015 Apr 18, 18:57 1142
3059 143192238, // 2015 May 18, 04:13 1143
3060 143446350, // 2015 Jun 16, 14:05 1144
3061 143700990, // 2015 Jul 16, 01:25 1145
3062 143956404, // 2015 Aug 14, 14:54 1146
3063 144212652, // 2015 Sep 13, 06:42 1147
3064 144469476, // 2015 Oct 13, 00:06 1148
3065 144726408, // 2015 Nov 11, 17:48 1149
3066 144982980, // 2015 Dec 11, 10:30 1150
3067 145238946, // 2016 Jan 10, 01:31 1151
3068 145494234, // 2016 Feb 8, 14:39 1152
3069 145748850, // 2016 Mar 9, 01:55 1153
3070 146002824, // 2016 Apr 7, 11:24 1154
3071 146256300, // 2016 May 6, 19:30 1155
3072 146509560, // 2016 Jun 5, 03:00 1156
3073 146763006, // 2016 Jul 4, 11:01 1157
3074 147017070, // 2016 Aug 2, 20:45 1158
3075 147272064, // 2016 Sep 1, 09:04 1159
3076 147528072, // 2016 Oct 1, 00:12 1160
3077 147784914, // 2016 Oct 30, 17:39 1161
3078 148042194, // 2016 Nov 29, 12:19 1162
3079 148299444, // 2016 Dec 29, 06:54 1163
3080 148556202, // 2017 Jan 28, 00:07 1164
3081 148812114, // 2017 Feb 26, 14:59 1165
3082 149066988, // 2017 Mar 28, 02:58 1166
3083 149320896, // 2017 Apr 26, 12:16 1167
3084 149574150, // 2017 May 25, 19:45 1168
3085 149827146, // 2017 Jun 24, 02:31 1169
3086 150080316, // 2017 Jul 23, 09:46 1170
3087 150334020, // 2017 Aug 21, 18:30 1171
3088 150588540, // 2017 Sep 20, 05:30 1172
3089 150844032, // 2017 Oct 19, 19:12 1173
3090 151100532, // 2017 Nov 18, 11:42 1174
3091 151357860, // 2017 Dec 18, 06:30 1175
3092 151615542, // 2018 Jan 17, 02:17 1176
3093 151872870, // 2018 Feb 15, 21:05 1177
3094 152129232, // 2018 Mar 17, 13:12 1178
3095 152384382, // 2018 Apr 16, 01:57 1179
3096 152638488, // 2018 May 15, 11:48 1180
3097 152891898, // 2018 Jun 13, 19:43 1181
3098 153145008, // 2018 Jul 13, 02:48 1182
3099 153398148, // 2018 Aug 11, 09:58 1183
3100 153651606, // 2018 Sep 9, 18:01 1184
3101 153905682, // 2018 Oct 9, 03:47 1185
3102 154160652, // 2018 Nov 7, 16:02 1186
3103 154416720, // 2018 Dec 7, 07:20 1187
3104 154673808, // 2019 Jan 6, 01:28 1188
3105 154931424, // 2019 Feb 4, 21:04 1189
3106 155188824, // 2019 Mar 6, 16:04 1190
3107 155445420, // 2019 Apr 5, 08:50 1191
3108 155700996, // 2019 May 4, 22:46 1192
3109 155955612, // 2019 Jun 3, 10:02 1193
3110 156209496, // 2019 Jul 2, 19:16 1194
3111 156462912, // 2019 Aug 1, 03:12 1195
3112 156716142, // 2019 Aug 30, 10:37 1196
3113 156969516, // 2019 Sep 28, 18:26 1197
3114 157223394, // 2019 Oct 28, 03:39 1198
3115 157478076, // 2019 Nov 26, 15:06 1199
3116 157733718, // 2019 Dec 26, 05:13 1200
3117 157990212, // 2020 Jan 24, 21:42 1201
3118 158247192, // 2020 Feb 23, 15:32 1202
3119 158504208, // 2020 Mar 24, 09:28 1203
3120 158760876, // 2020 Apr 23, 02:26 1204
3121 159016914, // 2020 May 22, 17:39 1205
3122 159272172, // 2020 Jun 21, 06:42 1206
3123 159526638, // 2020 Jul 20, 17:33 1207
3124 159780486, // 2020 Aug 19, 02:41 1208
3125 160034040, // 2020 Sep 17, 11:00 1209
3126 160287666, // 2020 Oct 16, 19:31 1210
3127 160541682, // 2020 Nov 15, 05:07 1211
3128 160796262, // 2020 Dec 14, 16:17 1212
3129 161051400, // 2021 Jan 13, 05:00 1213
3130 161307036, // 2021 Feb 11, 19:06 1214
3131 161563086, // 2021 Mar 13, 10:21 1215
3132 161819466, // 2021 Apr 12, 02:31 1216
3133 162075960, // 2021 May 11, 19:00 1217
3134 162332238, // 2021 Jun 10, 10:53 1218
3135 162587982, // 2021 Jul 10, 01:17 1219
3136 162843060, // 2021 Aug 8, 13:50 1220
3137 163097592, // 2021 Sep 7, 00:52 1221
3138 163351830, // 2021 Oct 6, 11:05 1222
3139 163606050, // 2021 Nov 4, 21:15 1223
3140 163860378, // 2021 Dec 4, 07:43 1224
3141 164114844, // 2022 Jan 2, 18:34 1225
3142 164369436, // 2022 Feb 1, 05:46 1226
3143 164624250, // 2022 Mar 2, 17:35 1227
3144 164879424, // 2022 Apr 1, 06:24 1228
3145 165135048, // 2022 Apr 30, 20:28 1229
3146 165391020, // 2022 May 30, 11:30 1230
3147 165647112, // 2022 Jun 29, 02:52 1231
3148 165903090, // 2022 Jul 28, 17:55 1232
3149 166158822, // 2022 Aug 27, 08:17 1233
3150 166414284, // 2022 Sep 25, 21:54 1234
3151 166669488, // 2022 Oct 25, 10:48 1235
3152 166924422, // 2022 Nov 23, 22:57 1236
3153 167179062, // 2022 Dec 23, 10:17 1237
3154 167433438, // 2023 Jan 21, 20:53 1238
3155 167687676, // 2023 Feb 20, 07:06 1239
3156 167941938, // 2023 Mar 21, 17:23 1240
3157 168196398, // 2023 Apr 20, 04:13 1241
3158 168451158, // 2023 May 19, 15:53 1242
3159 168706302, // 2023 Jun 18, 04:37 1243
3160 168961872, // 2023 Jul 17, 18:32 1244
3161 169217868, // 2023 Aug 16, 09:38 1245
3162 169474200, // 2023 Sep 15, 01:40 1246
3163 169730610, // 2023 Oct 14, 17:55 1247
3164 169986762, // 2023 Nov 13, 09:27 1248
3165 170242392, // 2023 Dec 12, 23:32 1249
3166 170497422, // 2024 Jan 11, 11:57 1250
3167 170751954, // 2024 Feb 9, 22:59 1251
3168 171006126, // 2024 Mar 10, 09:01 1252
3169 171260046, // 2024 Apr 8, 18:21 1253
3170 171513852, // 2024 May 8, 03:22 1254
3171 171767748, // 2024 Jun 6, 12:38 1255
3172 172022022, // 2024 Jul 5, 22:57 1256
3173 172276998, // 2024 Aug 4, 11:13 1257
3174 172532856, // 2024 Sep 3, 01:56 1258
3175 172789500, // 2024 Oct 2, 18:50 1259
3176 173046528, // 2024 Nov 1, 12:48 1260
3177 173303412, // 2024 Dec 1, 06:22 1261
3178 173559762, // 2024 Dec 30, 22:27 1262
3179 173815416, // 2025 Jan 29, 12:36 1263
3180 174070350, // 2025 Feb 28, 00:45 1264
3181 174324588, // 2025 Mar 29, 10:58 1265
3182 174578232, // 2025 Apr 27, 19:32 1266
3183 174831498, // 2025 May 27, 03:03 1267
3184 175084752, // 2025 Jun 25, 10:32 1268
3185 175338426, // 2025 Jul 24, 19:11 1269
3186 175592916, // 2025 Aug 23, 06:06 1270
3187 175848444, // 2025 Sep 21, 19:54 1271
3188 176104956, // 2025 Oct 21, 12:26 1272
3189 176362128, // 2025 Nov 20, 06:48 1273
3190 176619504, // 2025 Dec 20, 01:44 1274
3191 176876592, // 2026 Jan 18, 19:52 1275
3192 177132966, // 2026 Feb 17, 12:01 1276
3193 177388344, // 2026 Mar 19, 01:24 1277
3194 177642672, // 2026 Apr 17, 11:52 1278
3195 177896166, // 2026 May 16, 20:01 1279
3196 178149204, // 2026 Jun 15, 02:54 1280
3197 178402224, // 2026 Jul 14, 09:44 1281
3198 178655616, // 2026 Aug 12, 17:36 1282
3199 178909722, // 2026 Sep 11, 03:27 1283
3200 179164740, // 2026 Oct 10, 15:50 1284
3201 179420772, // 2026 Nov 9, 07:02 1285
3202 179677752, // 2026 Dec 9, 00:52 1286
3203 179935344, // 2027 Jan 7, 20:24 1287
3204 180192936, // 2027 Feb 6, 15:56 1288
3205 180449820, // 2027 Mar 8, 09:30 1289
3206 180705546, // 2027 Apr 6, 23:51 1290
3207 180960114, // 2027 May 6, 10:59 1291
3208 181213806, // 2027 Jun 4, 19:41 1292
3209 181467012, // 2027 Jul 4, 03:02 1293
3210 181720110, // 2027 Aug 2, 10:05 1294
3211 181973406, // 2027 Aug 31, 17:41 1295
3212 182227176, // 2027 Sep 30, 02:36 1296
3213 182481696, // 2027 Oct 29, 13:36 1297
3214 182737224, // 2027 Nov 28, 03:24 1298
3215 182993832, // 2027 Dec 27, 20:12 1299
3216 183251238, // 2028 Jan 26, 15:13 1300
3217 183508788, // 2028 Feb 25, 10:38 1301
3218 183765792, // 2028 Mar 26, 04:32 1302
3219 184021842, // 2028 Apr 24, 19:47 1303
3220 184276902, // 2028 May 24, 08:17 1304
3221 184531128, // 2028 Jun 22, 18:28 1305
3222 184784772, // 2028 Jul 22, 03:02 1306
3223 185038104, // 2028 Aug 20, 10:44 1307
3224 185291424, // 2028 Sep 18, 18:24 1308
3225 185545062, // 2028 Oct 18, 02:57 1309
3226 185799348, // 2028 Nov 16, 13:18 1310
3227 186054516, // 2028 Dec 16, 02:06 1311
3228 186310590, // 2029 Jan 14, 17:25 1312
3229 186567312, // 2029 Feb 13, 10:32 1313
3230 186824280, // 2029 Mar 15, 04:20 1314
3231 187081080, // 2029 Apr 13, 21:40 1315
3232 187337412, // 2029 May 13, 13:42 1316
3233 187593066, // 2029 Jun 12, 03:51 1317
3234 187847946, // 2029 Jul 11, 15:51 1318
3235 188102136, // 2029 Aug 10, 01:56 1319
3236 188355870, // 2029 Sep 8, 10:45 1320
3237 188609490, // 2029 Oct 7, 19:15 1321
3238 188863344, // 2029 Nov 6, 04:24 1322
3239 189117672, // 2029 Dec 5, 14:52 1323
3240 189372534, // 2030 Jan 4, 02:49 1324
3241 189627888, // 2030 Feb 2, 16:08 1325
3242 189883650, // 2030 Mar 4, 06:35 1326
3243 190139778, // 2030 Apr 2, 22:03 1327
3244 190396152, // 2030 May 2, 14:12 1328
3245 190652526, // 2030 Jun 1, 06:21 1329
3246 190908570, // 2030 Jun 30, 21:35 1330
3247 191164026, // 2030 Jul 30, 11:11 1331
3248 191418882, // 2030 Aug 28, 23:07 1332
3249 191673330, // 2030 Sep 27, 09:55 1333
3250 191927622, // 2030 Oct 26, 20:17 1334
3251 192181962, // 2030 Nov 25, 06:47 1335
3252 192436392, // 2030 Dec 24, 17:32 1336
3253 192690906, // 2031 Jan 23, 04:31 1337
3254 192945534, // 2031 Feb 21, 15:49 1338
3255 193200414, // 2031 Mar 23, 03:49 1339
3256 193455702, // 2031 Apr 21, 16:57 1340
3257 193711422, // 2031 May 21, 07:17 1341
3258 193967430, // 2031 Jun 19, 22:25 1342
3259 194223480, // 2031 Jul 19, 13:40 1343
3260 194479392, // 2031 Aug 18, 04:32 1344
3261 194735082, // 2031 Sep 16, 18:47 1345
3262 194990526, // 2031 Oct 16, 08:21 1346
3263 195245700, // 2031 Nov 14, 21:10 1347
3264 195500556, // 2031 Dec 14, 09:06 1348
3265 195755082, // 2032 Jan 12, 20:07 1349
3266 196009344, // 2032 Feb 11, 06:24 1350
3267 196263504, // 2032 Mar 11, 16:24 1351
3268 196517760, // 2032 Apr 10, 02:40 1352
3269 196772256, // 2032 May 9, 13:36 1353
3270 197027112, // 2032 Jun 8, 01:32 1354
3271 197282412, // 2032 Jul 7, 14:42 1355
3272 197538192, // 2032 Aug 6, 05:12 1356
3273 197794422, // 2032 Sep 4, 20:57 1357
3274 198050922, // 2032 Oct 4, 13:27 1358
3275 198307350, // 2032 Nov 3, 05:45 1359
3276 198563358, // 2032 Dec 2, 20:53 1360
3277 198818742, // 2033 Jan 1, 10:17 1361
3278 199073520, // 2033 Jan 30, 22:00 1362
3279 199327818, // 2033 Mar 1, 08:23 1363
3280 199581786, // 2033 Mar 30, 17:51 1364
3281 199835556, // 2033 Apr 29, 02:46 1365
3282 200089302, // 2033 May 28, 11:37 1366
3283 200343282, // 2033 Jun 26, 21:07 1367
3284 200597838, // 2033 Jul 26, 08:13 1368
3285 200853240, // 2033 Aug 24, 21:40 1369
3286 201109560, // 2033 Sep 23, 13:40 1370
3287 201366534, // 2033 Oct 23, 07:29 1371
3288 201623640, // 2033 Nov 22, 01:40 1372
3289 201880362, // 2033 Dec 21, 18:47 1373
3290 202136412, // 2034 Jan 20, 10:02 1374
3291 202391700, // 2034 Feb 18, 23:10 1375
3292 202646250, // 2034 Mar 20, 10:15 1376
3293 202900116, // 2034 Apr 18, 19:26 1377
3294 203153472, // 2034 May 18, 03:12 1378
3295 203406636, // 2034 Jun 16, 10:26 1379
3296 203660010, // 2034 Jul 15, 18:15 1380
3297 203914038, // 2034 Aug 14, 03:53 1381
3298 204169044, // 2034 Sep 12, 16:14 1382
3299 204425118, // 2034 Oct 12, 07:33 1383
3300 204682056, // 2034 Nov 11, 01:16 1384
3301 204939444, // 2034 Dec 10, 20:14 1385
3302 205196778, // 2035 Jan 9, 15:03 1386
3303 205453572, // 2035 Feb 8, 08:22 1387
3304 205709460, // 2035 Mar 9, 23:10 1388
3305 205964268, // 2035 Apr 8, 10:58 1389
3306 206218104, // 2035 May 7, 20:04 1390
3307 206471280, // 2035 Jun 6, 03:20 1391
3308 206724234, // 2035 Jul 5, 09:59 1392
3309 206977386, // 2035 Aug 3, 17:11 1393
3310 207231114, // 2035 Sep 2, 01:59 1394
3311 207485682, // 2035 Oct 1, 13:07 1395
3312 207741234, // 2035 Oct 31, 02:59 1396
3313 207997788, // 2035 Nov 29, 19:38 1397
3314 208255146, // 2035 Dec 29, 14:31 1398
3315 208512822, // 2036 Jan 28, 10:17 1399
3316 208770120, // 2036 Feb 27, 05:00 1400
3317 209026422, // 2036 Mar 27, 20:57 1401
3318 209281518, // 2036 Apr 26, 09:33 1402
3319 209535582, // 2036 May 25, 19:17 1403
3320 209788980, // 2036 Jun 24, 03:10 1404
3321 210042102, // 2036 Jul 23, 10:17 1405
3322 210295290, // 2036 Aug 21, 17:35 1406
3323 210548826, // 2036 Sep 20, 01:51 1407
3324 210802980, // 2036 Oct 19, 11:50 1408
3325 211058010, // 2036 Nov 18, 00:15 1409
3326 211314090, // 2036 Dec 17, 15:35 1410
3327 211571124, // 2037 Jan 16, 09:34 1411
3328 211828644, // 2037 Feb 15, 04:54 1412
3329 212085942, // 2037 Mar 16, 23:37 1413
3330 212342448, // 2037 Apr 15, 16:08 1414
3331 212597970, // 2037 May 15, 05:55 1415
3332 212852586, // 2037 Jun 13, 17:11 1416
3333 213106512, // 2037 Jul 13, 02:32 1417
3334 213360012, // 2037 Aug 11, 10:42 1418
3335 213613350, // 2037 Sep 9, 18:25 1419
3336 213866850, // 2037 Oct 9, 02:35 1420
3337 214120818, // 2037 Nov 7, 12:03 1421
3338 214375554, // 2037 Dec 6, 23:39 1422
3339 214631172, // 2038 Jan 5, 13:42 1423
3340 214887552, // 2038 Feb 4, 05:52 1424
3341 215144370, // 2038 Mar 5, 23:15 1425
3342 215401218, // 2038 Apr 4, 16:43 1426
3343 215657760, // 2038 May 4, 09:20 1427
3344 215913744, // 2038 Jun 3, 00:24 1428
3345 216169032, // 2038 Jul 2, 13:32 1429
3346 216423600, // 2038 Aug 1, 00:40 1430
3347 216677592, // 2038 Aug 30, 10:12 1431
3348 216931302, // 2038 Sep 28, 18:57 1432
3349 217185078, // 2038 Oct 28, 03:53 1433
3350 217439202, // 2038 Nov 26, 13:47 1434
3351 217693812, // 2038 Dec 26, 01:02 1435
3352 217948896, // 2039 Jan 24, 13:36 1436
3353 218204388, // 2039 Feb 23, 03:18 1437
3354 218460240, // 2039 Mar 24, 18:00 1438
3355 218716410, // 2039 Apr 23, 09:35 1439
3356 218972748, // 2039 May 23, 01:38 1440
3357 219228966, // 2039 Jun 21, 17:21 1441
3358 219484764, // 2039 Jul 21, 07:54 1442
3359 219739980, // 2039 Aug 19, 20:50 1443
3360 219994698, // 2039 Sep 18, 08:23 1444
3361 220249134, // 2039 Oct 17, 19:09 1445
3362 220503516, // 2039 Nov 16, 05:46 1446
3363 220757952, // 2039 Dec 15, 16:32 1447
3364 221012430, // 2040 Jan 14, 03:25 1448
3365 221266950, // 2040 Feb 12, 14:25 1449
3366 221521602, // 2040 Mar 13, 01:47 1450
3367 221776560, // 2040 Apr 11, 14:00 1451
3368 222031968, // 2040 May 11, 03:28 1452
3369 222287778, // 2040 Jun 9, 18:03 1453
3370 222543810, // 2040 Jul 9, 09:15 1454
3371 222799836, // 2040 Aug 8, 00:26 1455
3372 223055724, // 2040 Sep 6, 15:14 1456
3373 223311396, // 2040 Oct 6, 05:26 1457
3374 223566816, // 2040 Nov 4, 18:56 1458
3375 223821918, // 2040 Dec 4, 07:33 1459
3376 224076648, // 2041 Jan 2, 19:08 1460
3377 224331018, // 2041 Feb 1, 05:43 1461
3378 224585154, // 2041 Mar 2, 15:39 1462
3379 224839260, // 2041 Apr 1, 01:30 1463
3380 225093522, // 2041 Apr 30, 11:47 1464
3381 225348096, // 2041 May 29, 22:56 1465
3382 225603102, // 2041 Jun 28, 11:17 1466
3383 225858612, // 2041 Jul 28, 01:02 1467
3384 226114656, // 2041 Aug 26, 16:16 1468
3385 226371126, // 2041 Sep 25, 08:41 1469
3386 226627740, // 2041 Oct 25, 01:30 1470
3387 226884096, // 2041 Nov 23, 17:36 1471
3388 227139876, // 2041 Dec 23, 08:06 1472
3389 227394972, // 2042 Jan 21, 20:42 1473
3390 227649474, // 2042 Feb 20, 07:39 1474
3391 227903538, // 2042 Mar 21, 17:23 1475
3392 228157314, // 2042 Apr 20, 02:19 1476
3393 228410970, // 2042 May 19, 10:55 1477
3394 228664728, // 2042 Jun 17, 19:48 1478
3395 228918912, // 2042 Jul 17, 05:52 1479
3396 229173846, // 2042 Aug 15, 18:01 1480
3397 229429740, // 2042 Sep 14, 08:50 1481
3398 229686498, // 2042 Oct 14, 02:03 1482
3399 229943688, // 2042 Nov 12, 20:28 1483
3400 230200734, // 2042 Dec 12, 14:29 1484
3401 230457198, // 2043 Jan 11, 06:53 1485
3402 230712882, // 2043 Feb 9, 21:07 1486
3403 230967774, // 2043 Mar 11, 09:09 1487
3404 231221922, // 2043 Apr 9, 19:07 1488
3405 231475446, // 2043 May 9, 03:21 1489
3406 231728610, // 2043 Jun 7, 10:35 1490
3407 231981786, // 2043 Jul 6, 17:51 1491
3408 232235418, // 2043 Aug 5, 02:23 1492
3409 232489902, // 2043 Sep 3, 13:17 1493
3410 232745472, // 2043 Oct 3, 03:12 1494
3411 233002068, // 2043 Nov 1, 19:58 1495
3412 233259342, // 2043 Dec 1, 14:37 1496
3413 233516808, // 2043 Dec 31, 09:48 1497
3414 233773944, // 2044 Jan 30, 04:04 1498
3415 234030312, // 2044 Feb 28, 20:12 1499
3416 234285636, // 2044 Mar 29, 09:26 1500
3417 234539892, // 2044 Apr 27, 19:42 1501
3418 234793320, // 2044 May 27, 03:40 1502
3419 235046304, // 2044 Jun 25, 10:24 1503
3420 235299300, // 2044 Jul 24, 17:10 1504
3421 235552716, // 2044 Aug 23, 01:06 1505
3422 235806858, // 2044 Sep 21, 11:03 1506
3423 236061936, // 2044 Oct 20, 23:36 1507
3424 236318028, // 2044 Nov 19, 14:58 1508
3425 236575038, // 2044 Dec 19, 08:53 1509
3426 236832630, // 2045 Jan 18, 04:25 1510
3427 237090186, // 2045 Feb 16, 23:51 1511
3428 237347010, // 2045 Mar 18, 17:15 1512
3429 237602682, // 2045 Apr 17, 07:27 1513
3430 237857202, // 2045 May 16, 18:27 1514
3431 238110870, // 2045 Jun 15, 03:05 1515
3432 238364094, // 2045 Jul 14, 10:29 1516
3433 238617234, // 2045 Aug 12, 17:39 1517
3434 238870608, // 2045 Sep 11, 01:28 1518
3435 239124462, // 2045 Oct 10, 10:37 1519
3436 239379054, // 2045 Nov 8, 21:49 1520
3437 239634606, // 2045 Dec 8, 11:41 1521
3438 239891184, // 2046 Jan 7, 04:24 1522
3439 240148500, // 2046 Feb 5, 23:10 1523
3440 240405936, // 2046 Mar 7, 18:16 1524
3441 240662832, // 2046 Apr 6, 11:52 1525
3442 240918816, // 2046 May 6, 02:56 1526
3443 241173852, // 2046 Jun 4, 15:22 1527
3444 241428114, // 2046 Jul 4, 01:39 1528
3445 241681830, // 2046 Aug 2, 10:25 1529
3446 241935270, // 2046 Aug 31, 18:25 1530
3447 242188710, // 2046 Sep 30, 02:25 1531
3448 242442462, // 2046 Oct 29, 11:17 1532
3449 242696820, // 2046 Nov 27, 21:50 1533
3450 242951994, // 2046 Dec 27, 10:39 1534
3451 243207984, // 2047 Jan 26, 01:44 1535
3452 243464556, // 2047 Feb 24, 18:26 1536
3453 243721344, // 2047 Mar 26, 11:44 1537
3454 243978000, // 2047 Apr 25, 04:40 1538
3455 244234242, // 2047 May 24, 20:27 1539
3456 244489896, // 2047 Jun 23, 10:36 1540
3457 244744854, // 2047 Jul 22, 22:49 1541
3458 244999176, // 2047 Aug 21, 09:16 1542
3459 245253066, // 2047 Sep 19, 18:31 1543
3460 245506848, // 2047 Oct 19, 03:28 1544
3461 245760834, // 2047 Nov 17, 12:59 1545
3462 246015228, // 2047 Dec 16, 23:38 1546
3463 246270072, // 2048 Jan 15, 11:32 1547
3464 246525312, // 2048 Feb 14, 00:32 1548
3465 246780888, // 2048 Mar 14, 14:28 1549
3466 247036800, // 2048 Apr 13, 05:20 1550
3467 247292988, // 2048 May 12, 20:58 1551
3468 247549260, // 2048 Jun 11, 12:50 1552
3469 247805304, // 2048 Jul 11, 04:04 1553
3470 248060874, // 2048 Aug 9, 17:59 1554
3471 248315910, // 2048 Sep 8, 06:25 1555
3472 248570550, // 2048 Oct 7, 17:45 1556
3473 248825034, // 2048 Nov 6, 04:39 1557
3474 249079500, // 2048 Dec 5, 15:30 1558
3475 249333990, // 2049 Jan 4, 02:25 1559
3476 249588456, // 2049 Feb 2, 13:16 1560
3477 249842952, // 2049 Mar 4, 00:12 1561
3478 250097634, // 2049 Apr 2, 11:39 1562
3479 250352706, // 2049 May 2, 00:11 1563
3480 250608240, // 2049 May 31, 14:00 1564
3481 250864146, // 2049 Jun 30, 04:51 1565
3482 251120202, // 2049 Jul 29, 20:07 1566
3483 251376234, // 2049 Aug 28, 11:19 1567
3484 251632110, // 2049 Sep 27, 02:05 1568
3485 251887770, // 2049 Oct 26, 16:15 1569
3486 252143136, // 2049 Nov 25, 05:36 1570
3487 252398112, // 2049 Dec 24, 17:52 1571
3488 252652662, // 2050 Jan 23, 04:57 1572
3489 252906858, // 2050 Feb 21, 15:03 1573
3490 253160886, // 2050 Mar 23, 00:41 1574
3491 253414956, // 2050 Apr 21, 10:26 1575
3492 253669266, // 2050 May 20, 20:51 1576
3493 253923972, // 2050 Jun 19, 08:22 1577
3494 254179182, // 2050 Jul 18, 21:17 1578
3495 254434962, // 2050 Aug 17, 11:47 1579
3496 254691294, // 2050 Sep 16, 03:49 1580
3497 254947974, // 2050 Oct 15, 20:49 1581
3498 255204612, // 2050 Nov 14, 13:42 1582
3499 255460788, // 2050 Dec 14, 05:18 1583
3500 255716268, // 2051 Jan 12, 18:58 1584
3501 255971046, // 2051 Feb 11, 06:41 1585
3502 256225272, // 2051 Mar 12, 16:52 1586
3503 256479114, // 2051 Apr 11, 01:59 1587
3504 256732734, // 2051 May 10, 10:29 1588
3505 256986336, // 2051 Jun 8, 18:56 1589
3506 257240214, // 2051 Jul 8, 04:09 1590
3507 257494710, // 2051 Aug 6, 15:05 1591
3508 257750118, // 2051 Sep 5, 04:33 1592
3509 258006522, // 2051 Oct 4, 20:47 1593
3510 258263634, // 2051 Nov 3, 14:59 1594
3511 258520902, // 2051 Dec 3, 09:37 1595
3512 258777756, // 2052 Jan 2, 03:06 1596
3513 259033860, // 2052 Jan 31, 18:30 1597
3514 259289136, // 2052 Mar 1, 07:36 1598
3515 259543602, // 2052 Mar 30, 18:27 1599
3516 259797366, // 2052 Apr 29, 03:21 1600
3517 260050620, // 2052 May 28, 10:50 1601
3518 260303700, // 2052 Jun 26, 17:50 1602
3519 260557026, // 2052 Jul 26, 01:31 1603
3520 260811042, // 2052 Aug 24, 11:07 1604
3521 261066078, // 2052 Sep 22, 23:33 1605
3522 261322218, // 2052 Oct 22, 15:03 1606
3523 261579252, // 2052 Nov 21, 09:02 1607
3524 261836730, // 2052 Dec 21, 04:15 1608
3525 262094112, // 2053 Jan 19, 23:12 1609
3526 262350912, // 2053 Feb 18, 16:32 1610
3527 262606752, // 2053 Mar 20, 07:12 1611
3528 262861488, // 2053 Apr 18, 18:48 1612
3529 263115258, // 2053 May 18, 03:43 1613
3530 263368386, // 2053 Jun 16, 10:51 1614
3531 263621316, // 2053 Jul 15, 17:26 1615
3532 263874486, // 2053 Aug 14, 00:41 1616
3533 264128256, // 2053 Sep 12, 09:36 1617
3534 264382878, // 2053 Oct 11, 20:53 1618
3535 264638490, // 2053 Nov 10, 10:55 1619
3536 264895080, // 2053 Dec 10, 03:40 1620
3537 265152444, // 2054 Jan 8, 22:34 1621
3538 265410084, // 2054 Feb 7, 18:14 1622
3539 265667316, // 2054 Mar 9, 12:46 1623
3540 265923552, // 2054 Apr 8, 04:32 1624
3541 266178600, // 2054 May 7, 17:00 1625
3542 266432640, // 2054 Jun 6, 02:40 1626
3543 266686044, // 2054 Jul 5, 10:34 1627
3544 266939208, // 2054 Aug 3, 17:48 1628
3545 267192468, // 2054 Sep 2, 01:18 1629
3546 267446094, // 2054 Oct 1, 09:49 1630
3547 267700326, // 2054 Oct 30, 20:01 1631
3548 267955404, // 2054 Nov 29, 08:34 1632
3549 268211466, // 2054 Dec 28, 23:51 1633
3550 268468434, // 2055 Jan 27, 17:39 1634
3551 268725834, // 2055 Feb 26, 12:39 1635
3552 268983006, // 2055 Mar 28, 07:01 1636
3553 269239422, // 2055 Apr 26, 23:17 1637
3554 269494902, // 2055 May 26, 12:57 1638
3555 269749530, // 2055 Jun 25, 00:15 1639
3556 270003528, // 2055 Jul 24, 09:48 1640
3557 270257124, // 2055 Aug 22, 18:14 1641
3558 270510594, // 2055 Sep 21, 02:19 1642
3559 270764214, // 2055 Oct 20, 10:49 1643
3560 271018284, // 2055 Nov 18, 20:34 1644
3561 271273050, // 2055 Dec 18, 08:15 1645
3562 271528620, // 2056 Jan 16, 22:10 1646
3563 271784880, // 2056 Feb 15, 14:00 1647
3564 272041512, // 2056 Mar 16, 06:52 1648
3565 272298186, // 2056 Apr 14, 23:51 1649
3566 272554596, // 2056 May 14, 16:06 1650
3567 272810544, // 2056 Jun 13, 07:04 1651
3568 273065880, // 2056 Jul 12, 20:20 1652
3569 273320568, // 2056 Aug 11, 07:48 1653
3570 273574722, // 2056 Sep 9, 17:47 1654
3571 273828600, // 2056 Oct 9, 03:00 1655
3572 274082526, // 2056 Nov 7, 12:21 1656
3573 274336746, // 2056 Dec 6, 22:31 1657
3574 274591374, // 2057 Jan 5, 09:49 1658
3575 274846386, // 2057 Feb 3, 22:11 1659
3576 275101710, // 2057 Mar 5, 11:25 1660
3577 275357346, // 2057 Apr 4, 01:31 1661
3578 275613312, // 2057 May 3, 16:32 1662
3579 275869506, // 2057 Jun 2, 08:11 1663
3580 276125682, // 2057 Jul 1, 23:47 1664
3581 276381552, // 2057 Jul 31, 14:32 1665
3582 276636924, // 2057 Aug 30, 03:54 1666
3583 276891840, // 2057 Sep 28, 16:00 1667
3584 277146474, // 2057 Oct 28, 03:19 1668
3585 277401012, // 2057 Nov 26, 14:22 1669
3586 277655532, // 2057 Dec 26, 01:22 1670
3587 277910004, // 2058 Jan 24, 12:14 1671
3588 278164422, // 2058 Feb 22, 22:57 1672
3589 278418900, // 2058 Mar 24, 09:50 1673
3590 278673654, // 2058 Apr 22, 21:29 1674
3591 278928858, // 2058 May 22, 10:23 1675
3592 279184530, // 2058 Jun 21, 00:35 1676
3593 279440520, // 2058 Jul 20, 15:40 1677
3594 279696618, // 2058 Aug 19, 07:03 1678
3595 279952662, // 2058 Sep 17, 22:17 1679
3596 280208550, // 2058 Oct 17, 13:05 1680
3597 280464174, // 2058 Nov 16, 03:09 1681
3598 280719426, // 2058 Dec 15, 16:11 1682
3599 280974222, // 2059 Jan 14, 03:57 1683
3600 281228562, // 2059 Feb 12, 14:27 1684
3601 281482590, // 2059 Mar 14, 00:05 1685
3602 281736534, // 2059 Apr 12, 09:29 1686
3603 281990610, // 2059 May 11, 19:15 1687
3604 282245022, // 2059 Jun 10, 05:57 1688
3605 282499908, // 2059 Jul 9, 17:58 1689
3606 282755388, // 2059 Aug 8, 07:38 1690
3607 283011486, // 2059 Sep 6, 23:01 1691
3608 283268100, // 2059 Oct 6, 15:50 1692
3609 283524906, // 2059 Nov 5, 09:11 1693
3610 283781454, // 2059 Dec 5, 01:49 1694
3611 284037360, // 2060 Jan 3, 16:40 1695
3612 284292492, // 2060 Feb 2, 05:22 1696
3613 284546952, // 2060 Mar 2, 16:12 1697
3614 284800908, // 2060 Apr 1, 01:38 1698
3615 285054546, // 2060 Apr 30, 10:11 1699
3616 285308064, // 2060 May 29, 18:24 1700
3617 285561708, // 2060 Jun 28, 02:58 1701
3618 285815820, // 2060 Jul 27, 12:50 1702
3619 286070736, // 2060 Aug 26, 00:56 1703
3620 286326684, // 2060 Sep 24, 15:54 1704
3621 286583556, // 2060 Oct 24, 09:26 1705
3622 286840896, // 2060 Nov 23, 04:16 1706
3623 287098080, // 2060 Dec 22, 22:40 1707
3624 287354616, // 2061 Jan 21, 15:16 1708
3625 287610306, // 2061 Feb 20, 05:31 1709
3626 287865138, // 2061 Mar 21, 17:23 1710
3627 288119190, // 2061 Apr 20, 03:05 1711
3628 288372618, // 2061 May 19, 11:03 1712
3629 288625698, // 2061 Jun 17, 18:03 1713
3630 288878826, // 2061 Jul 17, 01:11 1714
3631 289132440, // 2061 Aug 15, 09:40 1715
3632 289386942, // 2061 Sep 13, 20:37 1716
3633 289642572, // 2061 Oct 13, 10:42 1717
3634 289899240, // 2061 Nov 12, 03:40 1718
3635 290156598, // 2061 Dec 11, 22:33 1719
3636 290414118, // 2062 Jan 10, 17:53 1720
3637 290671266, // 2062 Feb 9, 12:11 1721
3638 290927598, // 2062 Mar 11, 04:13 1722
3639 291182862, // 2062 Apr 9, 17:17 1723
3640 291437058, // 2062 May 9, 03:23 1724
3641 291690432, // 2062 Jun 7, 11:12 1725
3642 291943398, // 2062 Jul 6, 17:53 1726
3643 292196400, // 2062 Aug 5, 00:40 1727
3644 292449852, // 2062 Sep 3, 08:42 1728
3645 292704054, // 2062 Oct 2, 18:49 1729
3646 292959198, // 2062 Nov 1, 07:33 1730
3647 293215326, // 2062 Nov 30, 23:01 1731
3648 293472342, // 2062 Dec 30, 16:57 1732
3649 293729898, // 2063 Jan 29, 12:23 1733
3650 293987388, // 2063 Feb 28, 07:38 1734
3651 294244140, // 2063 Mar 30, 00:50 1735
3652 294499752, // 2063 Apr 28, 14:52 1736
3653 294754242, // 2063 May 28, 01:47 1737
3654 295007916, // 2063 Jun 26, 10:26 1738
3655 295261170, // 2063 Jul 25, 17:55 1739
3656 295514382, // 2063 Aug 24, 01:17 1740
3657 295767846, // 2063 Sep 22, 09:21 1741
3658 296021796, // 2063 Oct 21, 18:46 1742
3659 296276454, // 2063 Nov 20, 06:09 1743
3660 296532024, // 2063 Dec 19, 20:04 1744
3661 296788542, // 2064 Jan 18, 12:37 1745
3662 297045738, // 2064 Feb 17, 07:03 1746
3663 297303030, // 2064 Mar 18, 01:45 1747
3664 297559812, // 2064 Apr 16, 19:02 1748
3665 297815730, // 2064 May 16, 09:55 1749
3666 298070766, // 2064 Jun 14, 22:21 1750
3667 298325076, // 2064 Jul 14, 08:46 1751
3668 298578894, // 2064 Aug 12, 17:49 1752
3669 298832466, // 2064 Sep 11, 02:11 1753
3670 299086044, // 2064 Oct 10, 10:34 1754
3671 299339910, // 2064 Nov 8, 19:45 1755
3672 299594334, // 2064 Dec 8, 06:29 1756
3673 299849490, // 2065 Jan 6, 19:15 1757
3674 300105372, // 2065 Feb 5, 10:02 1758
3675 300361770, // 2065 Mar 7, 02:15 1759
3676 300618366, // 2065 Apr 5, 19:01 1760
3677 300874860, // 2065 May 5, 11:30 1761
3678 301131030, // 2065 Jun 4, 03:05 1762
3679 301386696, // 2065 Jul 3, 17:16 1763
3680 301641756, // 2065 Aug 2, 05:46 1764
3681 301896234, // 2065 Aug 31, 16:39 1765
3682 302150304, // 2065 Sep 30, 02:24 1766
3683 302404248, // 2065 Oct 29, 11:48 1767
3684 302658360, // 2065 Nov 27, 21:40 1768
3685 302912802, // 2065 Dec 27, 08:27 1769
3686 303167604, // 2066 Jan 25, 20:14 1770
3687 303422706, // 2066 Feb 24, 08:51 1771
3688 303678084, // 2066 Mar 25, 22:14 1772
3689 303933774, // 2066 Apr 24, 12:29 1773
3690 304189788, // 2066 May 24, 03:38 1774
3691 304445970, // 2066 Jun 22, 19:15 1775
3692 304702044, // 2066 Jul 22, 10:34 1776
3693 304957740, // 2066 Aug 21, 00:50 1777
3694 305212962, // 2066 Sep 19, 13:47 1778
3695 305467812, // 2066 Oct 19, 01:42 1779
3696 305722476, // 2066 Nov 17, 13:06 1780
3697 305977062, // 2066 Dec 17, 00:17 1781
3698 306231576, // 2067 Jan 15, 11:16 1782
3699 306485982, // 2067 Feb 13, 21:57 1783
3700 306740334, // 2067 Mar 15, 08:29 1784
3701 306994824, // 2067 Apr 13, 19:24 1785
3702 307249680, // 2067 May 13, 07:20 1786
3703 307505046, // 2067 Jun 11, 20:41 1787
3704 307760856, // 2067 Jul 11, 11:16 1788
3705 308016936, // 2067 Aug 10, 02:36 1789
3706 308273094, // 2067 Sep 8, 18:09 1790
3707 308529168, // 2067 Oct 8, 09:28 1791
3708 308785044, // 2067 Nov 7, 00:14 1792
3709 309040590, // 2067 Dec 6, 14:05 1793
3710 309295668, // 2068 Jan 5, 02:38 1794
3711 309550224, // 2068 Feb 3, 13:44 1795
3712 309804342, // 2068 Mar 3, 23:37 1796
3713 310058226, // 2068 Apr 2, 08:51 1797
3714 310312122, // 2068 May 1, 18:07 1798
3715 310566258, // 2068 May 31, 04:03 1799
3716 310820826, // 2068 Jun 29, 15:11 1800
3717 311075970, // 2068 Jul 29, 03:55 1801
3718 311331768, // 2068 Aug 27, 18:28 1802
3719 311588208, // 2068 Sep 26, 10:48 1803
3720 311845062, // 2068 Oct 26, 04:17 1804
3721 312101892, // 2068 Nov 24, 21:42 1805
3722 312358224, // 2068 Dec 24, 13:44 1806
3723 312613776, // 2069 Jan 23, 03:36 1807
3724 312868542, // 2069 Feb 21, 15:17 1808
3725 313122678, // 2069 Mar 23, 01:13 1809
3726 313376388, // 2069 Apr 21, 09:58 1810
3727 313629876, // 2069 May 20, 18:06 1811
3728 313883364, // 2069 Jun 19, 02:14 1812
3729 314137158, // 2069 Jul 18, 11:13 1813
3730 314391618, // 2069 Aug 16, 22:03 1814
3731 314647050, // 2069 Sep 15, 11:35 1815
3732 314903538, // 2069 Oct 15, 04:03 1816
3733 315160788, // 2069 Nov 13, 22:38 1817
3734 315418188, // 2069 Dec 13, 17:38 1818
3735 315675138, // 2070 Jan 12, 11:23 1819
3736 315931278, // 2070 Feb 11, 02:53 1820
3737 316186512, // 2070 Mar 12, 15:52 1821
3738 316440900, // 2070 Apr 11, 02:30 1822
3739 316694568, // 2070 May 10, 11:08 1823
3740 316947744, // 2070 Jun 8, 18:24 1824
3741 317200764, // 2070 Jul 8, 01:14 1825
3742 317454066, // 2070 Aug 6, 08:51 1826
3743 317708094, // 2070 Sep 4, 18:29 1827
3744 317963166, // 2070 Oct 4, 07:01 1828
3745 318219378, // 2070 Nov 2, 22:43 1829
3746 318476484, // 2070 Dec 2, 16:54 1830
3747 318734010, // 2071 Jan 1, 12:15 1831
3748 318991416, // 2071 Jan 31, 07:16 1832
3749 319248192, // 2071 Mar 2, 00:32 1833
3750 319503978, // 2071 Mar 31, 15:03 1834
3751 319758660, // 2071 Apr 30, 02:30 1835
3752 320012382, // 2071 May 29, 11:17 1836
3753 320265480, // 2071 Jun 27, 18:20 1837
3754 320518416, // 2071 Jul 27, 00:56 1838
3755 320771616, // 2071 Aug 25, 08:16 1839
3756 321025446, // 2071 Sep 23, 17:21 1840
3757 321280134, // 2071 Oct 23, 04:49 1841
3758 321535794, // 2071 Nov 21, 18:59 1842
3759 321792402, // 2071 Dec 21, 11:47 1843
3760 322049730, // 2072 Jan 20, 06:35 1844
3761 322307298, // 2072 Feb 19, 02:03 1845
3762 322564452, // 2072 Mar 19, 20:22 1846
3763 322820622, // 2072 Apr 18, 11:57 1847
3764 323075634, // 2072 May 18, 00:19 1848
3765 323329662, // 2072 Jun 16, 09:57 1849
3766 323583096, // 2072 Jul 15, 17:56 1850
3767 323836326, // 2072 Aug 14, 01:21 1851
3768 324089682, // 2072 Sep 12, 09:07 1852
3769 324343410, // 2072 Oct 11, 17:55 1853
3770 324597726, // 2072 Nov 10, 04:21 1854
3771 324852834, // 2072 Dec 9, 16:59 1855
3772 325108866, // 2073 Jan 8, 08:11 1856
3773 325365720, // 2073 Feb 7, 01:40 1857
3774 325622976, // 2073 Mar 8, 20:16 1858
3775 325880004, // 2073 Apr 7, 14:14 1859
3776 326136330, // 2073 May 7, 06:15 1860
3777 326391792, // 2073 Jun 5, 19:52 1861
3778 326646462, // 2073 Jul 5, 07:17 1862
3779 326900544, // 2073 Aug 3, 17:04 1863
3780 327154272, // 2073 Sep 2, 01:52 1864
3781 327407886, // 2073 Oct 1, 10:21 1865
3782 327661638, // 2073 Oct 30, 19:13 1866
3783 327915792, // 2073 Nov 29, 05:12 1867
3784 328170570, // 2073 Dec 28, 16:55 1868
3785 328426062, // 2074 Jan 27, 06:37 1869
3786 328682160, // 2074 Feb 25, 22:00 1870
3787 328938600, // 2074 Mar 27, 14:20 1871
3788 329195088, // 2074 Apr 26, 06:48 1872
3789 329451384, // 2074 May 25, 22:44 1873
3790 329707314, // 2074 Jun 24, 13:39 1874
3791 329962722, // 2074 Jul 24, 03:07 1875
3792 330217554, // 2074 Aug 22, 14:59 1876
3793 330471888, // 2074 Sep 21, 01:28 1877
3794 330725946, // 2074 Oct 20, 11:11 1878
3795 330980016, // 2074 Nov 18, 20:56 1879
3796 331234320, // 2074 Dec 18, 07:20 1880
3797 331488942, // 2075 Jan 16, 18:37 1881
3798 331743846, // 2075 Feb 15, 06:41 1882
3799 331998990, // 2075 Mar 16, 19:25 1883
3800 332254410, // 2075 Apr 15, 08:55 1884
3801 332510172, // 2075 May 14, 23:22 1885
3802 332766234, // 2075 Jun 13, 14:39 1886
3803 333022386, // 2075 Jul 13, 06:11 1887
3804 333278346, // 2075 Aug 11, 21:11 1888
3805 333533892, // 2075 Sep 10, 11:02 1889
3806 333789018, // 2075 Oct 9, 23:43 1890
3807 334043850, // 2075 Nov 8, 11:35 1891
3808 334298538, // 2075 Dec 7, 23:03 1892
3809 334553130, // 2076 Jan 6, 10:15 1893
3810 334807566, // 2076 Feb 4, 21:01 1894
3811 335061864, // 2076 Mar 5, 07:24 1895
3812 335316162, // 2076 Apr 3, 17:47 1896
3813 335570712, // 2076 May 3, 04:52 1897
3814 335825724, // 2076 Jun 1, 17:14 1898
3815 336081270, // 2076 Jul 1, 07:05 1899
3816 336337236, // 2076 Jul 30, 22:06 1900
3817 336593424, // 2076 Aug 29, 13:44 1901
3818 336849642, // 2076 Sep 28, 05:27 1902
3819 337105740, // 2076 Oct 27, 20:50 1903
3820 337361568, // 2076 Nov 26, 11:28 1904
3821 337616958, // 2076 Dec 26, 00:53 1905
3822 337871790, // 2077 Jan 24, 12:45 1906
3823 338126082, // 2077 Feb 22, 23:07 1907
3824 338379984, // 2077 Mar 24, 08:24 1908
3825 338633760, // 2077 Apr 22, 17:20 1909
3826 338887668, // 2077 May 22, 02:38 1910
3827 339141930, // 2077 Jun 20, 12:55 1911
3828 339396726, // 2077 Jul 20, 00:41 1912
3829 339652188, // 2077 Aug 18, 14:18 1913
3830 339908358, // 2077 Sep 17, 05:53 1914
3831 340165122, // 2077 Oct 16, 23:07 1915
3832 340422120, // 2077 Nov 15, 17:00 1916
3833 340678836, // 2077 Dec 15, 10:06 1917
3834 340934844, // 2078 Jan 14, 01:14 1918
3835 341189988, // 2078 Feb 12, 13:58 1919
3836 341444382, // 2078 Mar 14, 00:37 1920
3837 341698230, // 2078 Apr 12, 09:45 1921
3838 341951736, // 2078 May 11, 17:56 1922
3839 342205134, // 2078 Jun 10, 01:49 1923
3840 342458688, // 2078 Jul 9, 10:08 1924
3841 342712752, // 2078 Aug 7, 19:52 1925
3842 342967674, // 2078 Sep 6, 07:59 1926
3843 343223676, // 2078 Oct 5, 23:06 1927
3844 343480656, // 2078 Nov 4, 16:56 1928
3845 343738128, // 2078 Dec 4, 12:08 1929
3846 343995420, // 2079 Jan 3, 06:50 1930
3847 344252010, // 2079 Feb 1, 23:35 1931
3848 344507688, // 2079 Mar 3, 13:48 1932
3849 344762460, // 2079 Apr 2, 01:30 1933
3850 345016422, // 2079 May 1, 10:57 1934
3851 345269766, // 2079 May 30, 18:41 1935
3852 345522786, // 2079 Jun 29, 01:31 1936
3853 345775878, // 2079 Jul 28, 08:33 1937
3854 346029492, // 2079 Aug 26, 17:02 1938
3855 346284036, // 2079 Sep 25, 04:06 1939
3856 346539720, // 2079 Oct 24, 18:20 1940
3857 346796460, // 2079 Nov 23, 11:30 1941
3858 347053872, // 2079 Dec 23, 06:32 1942
3859 347311410, // 2080 Jan 22, 01:55 1943
3860 347568546, // 2080 Feb 20, 20:11 1944
3861 347824836, // 2080 Mar 21, 12:06 1945
3862 348080040, // 2080 Apr 20, 01:00 1946
3863 348334176, // 2080 May 19, 10:56 1947
3864 348587520, // 2080 Jun 17, 18:40 1948
3865 348840486, // 2080 Jul 17, 01:21 1949
3866 349093518, // 2080 Aug 15, 08:13 1950
3867 349347030, // 2080 Sep 13, 16:25 1951
3868 349601304, // 2080 Oct 13, 02:44 1952
3869 349856502, // 2080 Nov 11, 15:37 1953
3870 350112660, // 2080 Dec 11, 07:10 1954
3871 350369652, // 2081 Jan 10, 01:02 1955
3872 350627142, // 2081 Feb 8, 20:17 1956
3873 350884542, // 2081 Mar 10, 15:17 1957
3874 351141210, // 2081 Apr 9, 08:15 1958
3875 351396774, // 2081 May 8, 22:09 1959
3876 351651246, // 2081 Jun 7, 09:01 1960
3877 351904944, // 2081 Jul 6, 17:44 1961
3878 352158264, // 2081 Aug 5, 01:24 1962
3879 352411566, // 2081 Sep 3, 09:01 1963
3880 352665138, // 2081 Oct 2, 17:23 1964
3881 352919184, // 2081 Nov 1, 03:04 1965
3882 353173896, // 2081 Nov 30, 14:36 1966
3883 353429448, // 2081 Dec 30, 04:28 1967
3884 353685876, // 2082 Jan 28, 20:46 1968
3885 353942928, // 2082 Feb 27, 14:48 1969
3886 354200070, // 2082 Mar 29, 09:05 1970
3887 354456732, // 2082 Apr 28, 02:02 1971
3888 354712602, // 2082 May 27, 16:47 1972
3889 354967656, // 2082 Jun 26, 05:16 1973
3890 355222044, // 2082 Jul 25, 15:54 1974
3891 355475988, // 2082 Aug 24, 01:18 1975
3892 355729704, // 2082 Sep 22, 10:04 1976
3893 355983420, // 2082 Oct 21, 18:50 1977
3894 356237394, // 2082 Nov 20, 04:19 1978
3895 356491860, // 2082 Dec 19, 15:10 1979
3896 356746980, // 2083 Jan 18, 03:50 1980
3897 357002730, // 2083 Feb 16, 18:15 1981
3898 357258942, // 2083 Mar 18, 09:57 1982
3899 357515340, // 2083 Apr 17, 02:10 1983
3900 357771684, // 2083 May 16, 18:14 1984
3901 358027782, // 2083 Jun 15, 09:37 1985
3902 358283484, // 2083 Jul 14, 23:54 1986
3903 358538670, // 2083 Aug 13, 12:45 1987
3904 358793322, // 2083 Sep 12, 00:07 1988
3905 359047578, // 2083 Oct 11, 10:23 1989
3906 359301690, // 2083 Nov 9, 20:15 1990
3907 359555910, // 2083 Dec 9, 06:25 1991
3908 359810382, // 2084 Jan 7, 17:17 1992
3909 360065118, // 2084 Feb 6, 04:53 1993
3910 360320064, // 2084 Mar 6, 17:04 1994
3911 360575232, // 2084 Apr 5, 05:52 1995
3912 360830718, // 2084 May 4, 19:33 1996
3913 361086558, // 2084 Jun 3, 10:13 1997
3914 361342668, // 2084 Jul 3, 01:38 1998
3915 361598784, // 2084 Aug 1, 17:04 1999
3916 361854630, // 2084 Aug 31, 07:45 2000
3917 362110056, // 2084 Sep 29, 21:16 2001
3918 362365122, // 2084 Oct 29, 09:47 2002
3919 362619954, // 2084 Nov 27, 21:39 2003
3920 362874642, // 2084 Dec 27, 09:07 2004
3921 363129162, // 2085 Jan 25, 20:07 2005
3922 363383472, // 2085 Feb 24, 06:32 2006
3923 363637662, // 2085 Mar 25, 16:37 2007
3924 363891954, // 2085 Apr 24, 02:59 2008
3925 364146618, // 2085 May 23, 14:23 2009
3926 364401828, // 2085 Jun 22, 03:18 2010
3927 364657578, // 2085 Jul 21, 17:43 2011
3928 364913706, // 2085 Aug 20, 09:11 2012
3929 365170002, // 2085 Sep 19, 01:07 2013
3930 365426280, // 2085 Oct 18, 17:00 2014
3931 365682366, // 2085 Nov 17, 08:21 2015
3932 365938068, // 2085 Dec 16, 22:38 2016
3933 366193224, // 2086 Jan 15, 11:24 2017
3934 366447762, // 2086 Feb 13, 22:27 2018
3935 366701784, // 2086 Mar 15, 08:04 2019
3936 366955518, // 2086 Apr 13, 16:53 2020
3937 367209246, // 2086 May 13, 01:41 2021
3938 367463232, // 2086 Jun 11, 11:12 2022
3939 367717692, // 2086 Jul 10, 22:02 2023
3940 367972788, // 2086 Aug 9, 10:38 2024
3941 368228622, // 2086 Sep 8, 01:17 2025
3942 368485176, // 2086 Oct 7, 17:56 2026
3943 368742198, // 2086 Nov 6, 11:53 2027
3944 368999208, // 2086 Dec 6, 05:48 2028
3945 369255666, // 2087 Jan 4, 22:11 2029
3946 369511260, // 2087 Feb 3, 12:10 2030
3947 369765990, // 2087 Mar 4, 23:45 2031
3948 370020036, // 2087 Apr 3, 09:26 2032
3949 370273626, // 2087 May 2, 17:51 2033
3950 370526988, // 2087 Jun 1, 01:38 2034
3951 370780386, // 2087 Jun 30, 09:31 2035
3952 371034120, // 2087 Jul 29, 18:20 2036
3953 371288568, // 2087 Aug 28, 05:08 2037
3954 371544042, // 2087 Sep 26, 18:47 2038
3955 371800614, // 2087 Oct 26, 11:29 2039
3956 372057984, // 2087 Nov 25, 06:24 2040
3957 372315498, // 2087 Dec 25, 01:43 2041
3958 372572514, // 2088 Jan 23, 19:39 2042
3959 372828654, // 2088 Feb 22, 11:09 2043
3960 373083846, // 2088 Mar 23, 00:01 2044
3961 373338150, // 2088 Apr 21, 10:25 2045
3962 373591734, // 2088 May 20, 18:49 2046
3963 373844844, // 2088 Jun 19, 01:54 2047
3964 374097828, // 2088 Jul 18, 08:38 2048
3965 374351130, // 2088 Aug 16, 16:15 2049
3966 374605188, // 2088 Sep 15, 01:58 2050
3967 374860314, // 2088 Oct 14, 14:39 2051
3968 375116592, // 2088 Nov 13, 06:32 2052
3969 375373752, // 2088 Dec 13, 00:52 2053
3970 375631308, // 2089 Jan 11, 20:18 2054
3971 375888696, // 2089 Feb 10, 15:16 2055
3972 376145424, // 2089 Mar 12, 08:24 2056
3973 376401156, // 2089 Apr 10, 22:46 2057
3974 376655784, // 2089 May 10, 10:04 2058
3975 376909464, // 2089 Jun 8, 18:44 2059
3976 377162562, // 2089 Jul 8, 01:47 2060
3977 377415528, // 2089 Aug 6, 08:28 2061
3978 377668782, // 2089 Sep 4, 15:57 2062
3979 377922690, // 2089 Oct 4, 01:15 2063
3980 378177450, // 2089 Nov 2, 12:55 2064
3981 378433146, // 2089 Dec 2, 03:11 2065
3982 378689736, // 2089 Dec 31, 19:56 2066
3983 378947004, // 2090 Jan 30, 14:34 2067
3984 379204476, // 2090 Mar 1, 09:46 2068
3985 379461528, // 2090 Mar 31, 03:48 2069
3986 379717632, // 2090 Apr 29, 19:12 2070
3987 379972614, // 2090 May 29, 07:29 2071
3988 380226666, // 2090 Jun 27, 17:11 2072
3989 380480154, // 2090 Jul 27, 01:19 2073
3990 380733468, // 2090 Aug 25, 08:58 2074
3991 380986938, // 2090 Sep 23, 17:03 2075
3992 381240774, // 2090 Oct 23, 02:09 2076
3993 381495168, // 2090 Nov 21, 12:48 2077
3994 381750294, // 2090 Dec 21, 01:29 2078
3995 382006260, // 2091 Jan 19, 16:30 2079
3996 382262988, // 2091 Feb 18, 09:38 2080
3997 382520076, // 2091 Mar 20, 03:46 2081
3998 382776960, // 2091 Apr 18, 21:20 2082
3999 383033202, // 2091 May 18, 13:07 2083
4000 383288646, // 2091 Jun 17, 02:41 2084
4001 383543376, // 2091 Jul 16, 14:16 2085
4002 383797572, // 2091 Aug 15, 00:22 2086
4003 384051444, // 2091 Sep 13, 09:34 2087
4004 384305214, // 2091 Oct 12, 18:29 2088
4005 384559092, // 2091 Nov 11, 03:42 2089
4006 384813324, // 2091 Dec 10, 13:54 2090
4007 385068102, // 2092 Jan 9, 01:37 2091
4008 385323492, // 2092 Feb 7, 15:02 2092
4009 385579416, // 2092 Mar 8, 05:56 2093
4010 385835646, // 2092 Apr 6, 21:41 2094
4011 386091954, // 2092 May 6, 13:39 2095
4012 386348142, // 2092 Jun 5, 05:17 2096
4013 386604066, // 2092 Jul 4, 20:11 2097
4014 386859570, // 2092 Aug 3, 09:55 2098
4015 387114564, // 2092 Sep 1, 22:14 2099
4016 387369090, // 2092 Oct 1, 09:15 2100
4017 387623328, // 2092 Oct 30, 19:28 2101
4018 387877536, // 2092 Nov 29, 05:36 2102
4019 388131900, // 2092 Dec 28, 16:10 2103
4020 388386492, // 2093 Jan 27, 03:22 2104
4021 388641276, // 2093 Feb 25, 15:06 2105
4022 388896228, // 2093 Mar 27, 03:18 2106
4023 389151432, // 2093 Apr 25, 16:12 2107
4024 389407002, // 2093 May 25, 06:07 2108
4025 389662950, // 2093 Jun 23, 21:05 2109
4026 389919096, // 2093 Jul 23, 12:36 2110
4027 390175164, // 2093 Aug 22, 03:54 2111
4028 390430902, // 2093 Sep 20, 18:17 2112
4029 390686238, // 2093 Oct 20, 07:33 2113
4030 390941262, // 2093 Nov 18, 19:57 2114
4031 391196082, // 2093 Dec 18, 07:47 2115
4032 391450710, // 2094 Jan 16, 19:05 2116
4033 391705098, // 2094 Feb 15, 05:43 2117
4034 391959264, // 2094 Mar 16, 15:44 2118
4035 392213388, // 2094 Apr 15, 01:38 2119
4036 392467734, // 2094 May 14, 12:09 2120
4037 392722578, // 2094 Jun 13, 00:03 2121
4038 392978022, // 2094 Jul 12, 13:37 2122
4039 393233982, // 2094 Aug 11, 04:37 2123
4040 393490266, // 2094 Sep 9, 20:31 2124
4041 393746664, // 2094 Oct 9, 12:44 2125
4042 394002972, // 2094 Nov 8, 04:42 2126
4043 394258980, // 2094 Dec 7, 19:50 2127
4044 394514478, // 2095 Jan 6, 09:33 2128
4045 394769334, // 2095 Feb 4, 21:29 2129
4046 395023554, // 2095 Mar 6, 07:39 2130
4047 395277336, // 2095 Apr 4, 16:36 2131
4048 395530956, // 2095 May 4, 01:06 2132
4049 395784708, // 2095 Jun 2, 09:58 2133
4050 396038844, // 2095 Jul 1, 19:54 2134
4051 396293574, // 2095 Jul 31, 07:29 2135
4052 396549036, // 2095 Aug 29, 21:06 2136
4053 396805284, // 2095 Sep 28, 12:54 2137
4054 397062198, // 2095 Oct 28, 06:33 2138
4055 397319364, // 2095 Nov 27, 00:54 2139
4056 397576230, // 2095 Dec 26, 18:25 2140
4057 397832310, // 2096 Jan 25, 09:45 2141
4058 398087448, // 2096 Feb 23, 22:28 2142
4059 398341770, // 2096 Mar 24, 08:55 2143
4060 398595504, // 2096 Apr 22, 17:44 2144
4061 398848896, // 2096 May 22, 01:36 2145
4062 399102192, // 2096 Jun 20, 09:12 2146
4063 399355686, // 2096 Jul 19, 17:21 2147
4064 399609720, // 2096 Aug 18, 03:00 2148
4065 399864660, // 2096 Sep 16, 15:10 2149
4066 400120734, // 2096 Oct 16, 06:29 2150
4067 400377816, // 2096 Nov 15, 00:36 2151
4068 400635396, // 2096 Dec 14, 20:06 2152
4069 400892760, // 2097 Jan 13, 15:00 2153
4070 401149374, // 2097 Feb 12, 07:49 2154
4071 401405022, // 2097 Mar 13, 21:57 2155
4072 401659716, // 2097 Apr 12, 09:26 2156
4073 401913600, // 2097 May 11, 18:40 2157
4074 402166884, // 2097 Jun 10, 02:14 2158
4075 402419868, // 2097 Jul 9, 08:58 2159
4076 402672960, // 2097 Aug 7, 16:00 2160
4077 402926598, // 2097 Sep 6, 00:33 2161
4078 403181190, // 2097 Oct 5, 11:45 2162
4079 403436934, // 2097 Nov 4, 02:09 2163
4080 403693722, // 2097 Dec 3, 19:27 2164
4081 403951158, // 2098 Jan 2, 14:33 2165
4082 404208684, // 2098 Feb 1, 09:54 2166
4083 404465772, // 2098 Mar 3, 04:02 2167
4084 404722002, // 2098 Apr 1, 19:47 2168
4085 404977152, // 2098 May 1, 08:32 2169
4086 405231258, // 2098 May 30, 18:23 2170
4087 405484596, // 2098 Jun 29, 02:06 2171
4088 405737586, // 2098 Jul 28, 08:51 2172
4089 405990672, // 2098 Aug 26, 15:52 2173
4090 406244256, // 2098 Sep 25, 00:16 2174
4091 406498614, // 2098 Oct 24, 10:49 2175
4092 406753866, // 2098 Nov 22, 23:51 2176
4093 407010024, // 2098 Dec 22, 15:24 2177
4094 407266962, // 2099 Jan 21, 09:07 2178
4095 407524350, // 2099 Feb 20, 04:05 2179
4096 407781636, // 2099 Mar 21, 22:46 2180
4097 408038220, // 2099 Apr 20, 15:30 2181
4098 408293736, // 2099 May 20, 05:16 2182
4099 408548220, // 2099 Jun 18, 16:10 2183
4100 408801966, // 2099 Jul 18, 01:01 2184
4101 409055364, // 2099 Aug 16, 08:54 2185
4102 409308780, // 2099 Sep 14, 16:50 2186
4103 409562472, // 2099 Oct 14, 01:32 2187
4104 409816614, // 2099 Nov 12, 11:29 2188
4105 410071374, // 2099 Dec 11, 23:09 2189
4106 410326896, // 2100 Jan 10, 12:56 2190
4107 410583210, // 2100 Feb 9, 04:55 2191
4108 410840094, // 2100 Mar 10, 22:29 2192
4109 411097062, // 2100 Apr 9, 16:17 2193
4110 411353604, // 2100 May 9, 08:54 2194
4111 411609426, // 2100 Jun 7, 23:31 2195
4112 411864516, // 2100 Jul 7, 12:06 2196
4113 412119012, // 2100 Aug 5, 23:02 2197
4114 412373094, // 2100 Sep 4, 08:49 2198
4115 412626972, // 2100 Oct 3, 18:02 2199
4116 412880844, // 2100 Nov 2, 03:14 2200
4117 413134920, // 2100 Dec 1, 13:00 2201
4118 413389416, // 2100 Dec 30, 23:56 2202
4119 413644464, // 2101 Jan 29, 12:24 2203
4121 enum { kNewMoonDatesCount
= sizeof(newMoonDates
)/sizeof(newMoonDates
[0]) };
4123 static const UDate newMoonDatesFirst
= 10000.0 * -221149158; // newMoonDates[0];
4124 static const UDate newMoonDatesLast
= 10000.0 * 413644464; // newMoonDates[kNewMoonDatesCount-1];
4125 static const UDate newMoonDatesRange
= 10000.0 * (413644464 + 221149158); // newMoonDatesLast - newMoonDatesFirst;
4127 // To get the full moon date/time in millis,
4128 // first we use the newMoonDates data to estimate the full moon time for a given lunation
4129 // as halfway between the new moon for the current lunation and the new moon for the next,
4130 // then we add the correction from the table below.
4131 // These adjustment values are in millis/10000.0 (i.e. in units of 10 seconds) to fit
4133 // This fullMoonAdjustmts array has one fewer entry than the newMoonDates array.
4134 static const int16_t fullMoonAdjustmts
[] = {
4135 // adj/10K lunation number
6627 * The position of the moon at the time set on this
6628 * object, in equatorial coordinates.
6630 * @deprecated ICU 2.4. This class may be removed or modified.
6632 const CalendarAstronomer::Equatorial
& CalendarAstronomer::getMoonPosition()
6635 // See page 142 of "Practical Astronomy with your Calculator",
6636 // by Peter Duffet-Smith, for details on the algorithm.
6638 if (moonPositionSet
== FALSE
) {
6639 // Calculate the solar longitude. Has the side effect of
6640 // filling in "meanAnomalySun" as well.
6644 // Find the # of days since the epoch of our orbital parameters.
6645 // TODO: Convert the time of day portion into ephemeris time
6647 double day
= getJulianDay() - JD_EPOCH
; // Days since epoch
6649 // Calculate the mean longitude and anomaly of the moon, based on
6650 // a circular orbit. Similar to the corresponding solar calculation.
6651 double meanLongitude
= norm2PI(13.1763966*PI
/180*day
+ moonL0
);
6652 meanAnomalyMoon
= norm2PI(meanLongitude
- 0.1114041*PI
/180 * day
- moonP0
);
6655 // Calculate the following corrections:
6656 // Evection: the sun's gravity affects the moon's eccentricity
6657 // Annual Eqn: variation in the effect due to earth-sun distance
6658 // A3: correction factor (for ???)
6660 double evection
= 1.2739*PI
/180 * ::sin(2 * (meanLongitude
- sunLongitude
)
6662 double annual
= 0.1858*PI
/180 * ::sin(meanAnomalySun
);
6663 double a3
= 0.3700*PI
/180 * ::sin(meanAnomalySun
);
6665 meanAnomalyMoon
+= evection
- annual
- a3
;
6668 // More correction factors:
6669 // center equation of the center correction
6670 // a4 yet another error correction (???)
6672 // TODO: Skip the equation of the center correction and solve Kepler's eqn?
6674 double center
= 6.2886*PI
/180 * ::sin(meanAnomalyMoon
);
6675 double a4
= 0.2140*PI
/180 * ::sin(2 * meanAnomalyMoon
);
6677 // Now find the moon's corrected longitude
6678 moonLongitude
= meanLongitude
+ evection
+ center
- annual
+ a4
;
6681 // And finally, find the variation, caused by the fact that the sun's
6682 // gravitational pull on the moon varies depending on which side of
6683 // the earth the moon is on
6685 double variation
= 0.6583*CalendarAstronomer::PI
/180 * ::sin(2*(moonLongitude
- sunLongitude
));
6687 moonLongitude
+= variation
;
6690 // What we've calculated so far is the moon's longitude in the plane
6691 // of its own orbit. Now map to the ecliptic to get the latitude
6692 // and longitude. First we need to find the longitude of the ascending
6693 // node, the position on the ecliptic where it is crossed by the moon's
6694 // orbit as it crosses from the southern to the northern hemisphere.
6696 double nodeLongitude
= norm2PI(moonN0
- 0.0529539*PI
/180 * day
);
6698 nodeLongitude
-= 0.16*PI
/180 * ::sin(meanAnomalySun
);
6700 double y
= ::sin(moonLongitude
- nodeLongitude
);
6701 double x
= cos(moonLongitude
- nodeLongitude
);
6703 moonEclipLong
= ::atan2(y
*cos(moonI
), x
) + nodeLongitude
;
6704 double moonEclipLat
= ::asin(y
* ::sin(moonI
));
6706 eclipticToEquatorial(moonPosition
, moonEclipLong
, moonEclipLat
);
6707 moonPositionSet
= TRUE
;
6709 return moonPosition
;
6713 * The "age" of the moon at the time specified in this object.
6714 * This is really the angle between the
6715 * current ecliptic longitudes of the sun and the moon,
6716 * measured in radians.
6718 * @see #getMoonPhase
6720 * @deprecated ICU 2.4. This class may be removed or modified.
6722 double CalendarAstronomer::getMoonAge() {
6723 // See page 147 of "Practical Astronomy with your Calculator",
6724 // by Peter Duffet-Smith, for details on the algorithm.
6726 // Force the moon's position to be calculated. We're going to use
6727 // some the intermediate results cached during that calculation.
6729 // Currently, the only client is IslamicCalendar. All it cares
6730 // about is that the method returns new moon (0) and full moon (PI)
6731 // at the correct date & time, and otherwise that the returned value
6732 // is monotonically increasing from 0 to PI for the range new moon date
6733 // to full moon date, and monotonically increasing from PI to just under
6734 // 2*PI for the range full moon date to just before next new moon date.
6736 if (fTime
>= newMoonDatesFirst
&& fTime
< newMoonDatesLast
) {
6737 int32_t offset
= (int32_t)(((double)kNewMoonDatesCount
)*(fTime
- newMoonDatesFirst
)/newMoonDatesRange
);
6738 const int32_t * newMoonDatesPtr
= newMoonDates
+ offset
; // approximate starting position
6739 int32_t curTime
= (int32_t)(fTime
/10000.0);
6740 while (curTime
< *newMoonDatesPtr
) {
6743 while (curTime
>= *(newMoonDatesPtr
+1)) {
6746 offset
= newMoonDatesPtr
- newMoonDates
;
6747 int32_t fullMoonDate
= (*newMoonDatesPtr
+ *(newMoonDatesPtr
+1))/2 + fullMoonAdjustmts
[offset
];
6748 if (curTime
< fullMoonDate
) {
6749 return PI
*((double)(curTime
- *newMoonDatesPtr
))/((double)(fullMoonDate
- *newMoonDatesPtr
));
6751 return PI
+ PI
*((double)(curTime
- fullMoonDate
))/((double)(*(newMoonDatesPtr
+1) - fullMoonDate
));
6756 return norm2PI(moonEclipLong
- sunLongitude
);
6760 * Calculate the phase of the moon at the time set in this object.
6761 * The returned phase is a <code>double</code> in the range
6762 * <code>0 <= phase < 1</code>, interpreted as follows:
6764 * <li>0.00: New moon
6765 * <li>0.25: First quarter
6766 * <li>0.50: Full moon
6767 * <li>0.75: Last quarter
6772 * @deprecated ICU 2.4. This class may be removed or modified.
6774 double CalendarAstronomer::getMoonPhase() {
6775 // See page 147 of "Practical Astronomy with your Calculator",
6776 // by Peter Duffet-Smith, for details on the algorithm.
6777 return 0.5 * (1 - cos(getMoonAge()));
6781 * Constant representing a new moon.
6782 * For use with {@link #getMoonTime getMoonTime}
6784 * @deprecated ICU 2.4. This class may be removed or modified.
6786 const CalendarAstronomer::MoonAge
CalendarAstronomer::NEW_MOON() {
6787 return CalendarAstronomer::MoonAge(0);
6791 * Constant representing the moon's first quarter.
6792 * For use with {@link #getMoonTime getMoonTime}
6794 * @deprecated ICU 2.4. This class may be removed or modified.
6796 /*const CalendarAstronomer::MoonAge CalendarAstronomer::FIRST_QUARTER() {
6797 return CalendarAstronomer::MoonAge(CalendarAstronomer::PI/2);
6801 * Constant representing a full moon.
6802 * For use with {@link #getMoonTime getMoonTime}
6804 * @deprecated ICU 2.4. This class may be removed or modified.
6806 const CalendarAstronomer::MoonAge
CalendarAstronomer::FULL_MOON() {
6807 return CalendarAstronomer::MoonAge(CalendarAstronomer::PI
);
6810 * Constant representing the moon's last quarter.
6811 * For use with {@link #getMoonTime getMoonTime}
6813 * @deprecated ICU 2.4. This class may be removed or modified.
6816 class MoonTimeAngleFunc
: public CalendarAstronomer::AngleFunc
{
6818 virtual ~MoonTimeAngleFunc();
6819 virtual double eval(CalendarAstronomer
&a
) { return a
.getMoonAge(); }
6822 MoonTimeAngleFunc::~MoonTimeAngleFunc() {}
6824 /*const CalendarAstronomer::MoonAge CalendarAstronomer::LAST_QUARTER() {
6825 return CalendarAstronomer::MoonAge((CalendarAstronomer::PI*3)/2);
6829 * Find the next or previous time of a new moon if date is in the
6830 * range handled by this function (approx gregorian 1900-2100),
6833 * @param theTime the time relative to which the function should find
6834 * the next or previous new moon
6835 * @param next <tt>true</tt> if the next occurrance of the new moon
6836 * is desired, <tt>false</tt> for the previous occurrance.
6839 UDate
CalendarAstronomer::getNewMoonTimeInRange(UDate theTime
, UBool next
)
6841 if (theTime
< newMoonDatesFirst
|| theTime
>= newMoonDatesLast
) {
6844 int32_t offset
= (int32_t)(((double)kNewMoonDatesCount
)*(theTime
- newMoonDatesFirst
)/newMoonDatesRange
);
6845 const int32_t * newMoonDatesPtr
= newMoonDates
+ offset
; // approximate starting position
6846 int32_t curTime
= (int32_t)(theTime
/10000.0);
6847 while (curTime
< *newMoonDatesPtr
) {
6850 while (curTime
>= *(newMoonDatesPtr
+1)) {
6856 return 10000.0 * (UDate
)(*newMoonDatesPtr
);
6861 * Find the next or previous time at which the Moon's ecliptic
6862 * longitude will have the desired value.
6864 * @param desired The desired longitude.
6865 * @param next <tt>true</tt> if the next occurrance of the phase
6866 * is desired, <tt>false</tt> for the previous occurrance.
6868 * @deprecated ICU 2.4. This class may be removed or modified.
6870 UDate
CalendarAstronomer::getMoonTime(double desired
, UBool next
)
6872 // Currently, we only get here via a call from ChineseCalendar,
6873 // with desired == CalendarAstronomer::NEW_MOON().value
6874 if (desired
== CalendarAstronomer::NEW_MOON().value
) {
6875 UDate newMoonTime
= CalendarAstronomer::getNewMoonTimeInRange(fTime
, next
);
6876 if (newMoonTime
!= 0.0) {
6879 // else fall through to the full calculation
6882 MoonTimeAngleFunc func
;
6883 return timeOfAngle( func
,
6891 * Find the next or previous time at which the moon will be in the
6894 * @param desired The desired phase of the moon.
6895 * @param next <tt>true</tt> if the next occurrance of the phase
6896 * is desired, <tt>false</tt> for the previous occurrance.
6898 * @deprecated ICU 2.4. This class may be removed or modified.
6900 UDate
CalendarAstronomer::getMoonTime(const CalendarAstronomer::MoonAge
& desired
, UBool next
) {
6901 // Currently, the only client is ChineseCalendar, which calls
6902 // this with desired == CalendarAstronomer::NEW_MOON()
6903 return getMoonTime(desired
.value
, next
);
6906 class MoonRiseSetCoordFunc
: public CalendarAstronomer::CoordFunc
{
6908 virtual ~MoonRiseSetCoordFunc();
6909 virtual void eval(CalendarAstronomer::Equatorial
& result
, CalendarAstronomer
&a
) { result
= a
.getMoonPosition(); }
6912 MoonRiseSetCoordFunc::~MoonRiseSetCoordFunc() {}
6915 * Returns the time (GMT) of sunrise or sunset on the local date to which
6916 * this calendar is currently set.
6918 * @deprecated ICU 2.4. This class may be removed or modified.
6920 UDate
CalendarAstronomer::getMoonRiseSet(UBool rise
)
6922 MoonRiseSetCoordFunc func
;
6923 return riseOrSet(func
,
6925 .533 * DEG_RAD
, // Angular Diameter
6926 34 /60.0 * DEG_RAD
, // Refraction correction
6927 MINUTE_MS
); // Desired accuracy
6930 //-------------------------------------------------------------------------
6931 // Interpolation methods for finding the time at which a given event occurs
6932 //-------------------------------------------------------------------------
6934 UDate
CalendarAstronomer::timeOfAngle(AngleFunc
& func
, double desired
,
6935 double periodDays
, double epsilon
, UBool next
)
6937 // Find the value of the function at the current time
6938 double lastAngle
= func
.eval(*this);
6940 // Find out how far we are from the desired angle
6941 double deltaAngle
= norm2PI(desired
- lastAngle
) ;
6943 // Using the average period, estimate the next (or previous) time at
6944 // which the desired angle occurs.
6945 double deltaT
= (deltaAngle
+ (next
? 0.0 : - CalendarAstronomer_PI2
)) * (periodDays
*DAY_MS
) / CalendarAstronomer_PI2
;
6947 double lastDeltaT
= deltaT
; // Liu
6948 UDate startTime
= fTime
; // Liu
6950 setTime(fTime
+ uprv_ceil(deltaT
));
6952 // Now iterate until we get the error below epsilon. Throughout
6953 // this loop we use normPI to get values in the range -Pi to Pi,
6954 // since we're using them as correction factors rather than absolute angles.
6956 // Evaluate the function at the time we've estimated
6957 double angle
= func
.eval(*this);
6959 // Find the # of milliseconds per radian at this point on the curve
6960 double factor
= uprv_fabs(deltaT
/ normPI(angle
-lastAngle
));
6962 // Correct the time estimate based on how far off the angle is
6963 deltaT
= normPI(desired
- angle
) * factor
;
6967 // If abs(deltaT) begins to diverge we need to quit this loop.
6968 // This only appears to happen when attempting to locate, for
6969 // example, a new moon on the day of the new moon. E.g.:
6971 // This result is correct:
6972 // newMoon(7508(Mon Jul 23 00:00:00 CST 1990,false))=
6973 // Sun Jul 22 10:57:41 CST 1990
6975 // But attempting to make the same call a day earlier causes deltaT
6977 // CalendarAstronomer.timeOfAngle() diverging: 1.348508727575625E9 ->
6978 // 1.3649828540224032E9
6979 // newMoon(7507(Sun Jul 22 00:00:00 CST 1990,false))=
6980 // Sun Jul 08 13:56:15 CST 1990
6982 // As a temporary solution, we catch this specific condition and
6983 // adjust our start time by one eighth period days (either forward
6984 // or backward) and try again.
6986 if (uprv_fabs(deltaT
) > uprv_fabs(lastDeltaT
)) {
6987 double delta
= uprv_ceil (periodDays
* DAY_MS
/ 8.0);
6988 setTime(startTime
+ (next
? delta
: -delta
));
6989 return timeOfAngle(func
, desired
, periodDays
, epsilon
, next
);
6992 lastDeltaT
= deltaT
;
6995 setTime(fTime
+ uprv_ceil(deltaT
));
6997 while (uprv_fabs(deltaT
) > epsilon
);
7002 UDate
CalendarAstronomer::riseOrSet(CoordFunc
& func
, UBool rise
,
7003 double diameter
, double refraction
,
7007 double tanL
= ::tan(fLatitude
);
7012 // Calculate the object's position at the current time, then use that
7013 // position to calculate the time of rising or setting. The position
7014 // will be different at that time, so iterate until the error is allowable.
7016 U_DEBUG_ASTRO_MSG(("setup rise=%s, dia=%.3lf, ref=%.3lf, eps=%.3lf\n",
7017 rise
?"T":"F", diameter
, refraction
, epsilon
));
7019 // See "Practical Astronomy With Your Calculator, section 33.
7020 func
.eval(pos
, *this);
7021 double angle
= ::acos(-tanL
* ::tan(pos
.declination
));
7022 double lst
= ((rise
? CalendarAstronomer_PI2
-angle
: angle
) + pos
.ascension
) * 24 / CalendarAstronomer_PI2
;
7024 // Convert from LST to Universal Time.
7025 UDate newTime
= lstToUT( lst
);
7027 deltaT
= newTime
- fTime
;
7029 U_DEBUG_ASTRO_MSG(("%d] dT=%.3lf, angle=%.3lf, lst=%.3lf, A=%.3lf/D=%.3lf\n",
7030 count
, deltaT
, angle
, lst
, pos
.ascension
, pos
.declination
));
7032 while (++ count
< 5 && uprv_fabs(deltaT
) > epsilon
);
7034 // Calculate the correction due to refraction and the object's angular diameter
7035 double cosD
= ::cos(pos
.declination
);
7036 double psi
= ::acos(sin(fLatitude
) / cosD
);
7037 double x
= diameter
/ 2 + refraction
;
7038 double y
= ::asin(sin(x
) / ::sin(psi
));
7039 long delta
= (long)((240 * y
* RAD_DEG
/ cosD
)*SECOND_MS
);
7041 return fTime
+ (rise
? -delta
: delta
);
7044 * Return the obliquity of the ecliptic (the angle between the ecliptic
7045 * and the earth's equator) at the current time. This varies due to
7046 * the precession of the earth's axis.
7048 * @return the obliquity of the ecliptic relative to the equator,
7049 * measured in radians.
7051 double CalendarAstronomer::eclipticObliquity() {
7052 if (isINVALID(eclipObliquity
)) {
7053 const double epoch
= 2451545.0; // 2000 AD, January 1.5
7055 double T
= (getJulianDay() - epoch
) / 36525;
7057 eclipObliquity
= 23.439292
7060 + 0.00181/3600 * T
*T
*T
;
7062 eclipObliquity
*= DEG_RAD
;
7064 return eclipObliquity
;
7068 //-------------------------------------------------------------------------
7070 //-------------------------------------------------------------------------
7071 void CalendarAstronomer::clearCache() {
7072 const double INVALID
= uprv_getNaN();
7074 julianDay
= INVALID
;
7075 julianCentury
= INVALID
;
7076 sunLongitude
= INVALID
;
7077 meanAnomalySun
= INVALID
;
7078 moonLongitude
= INVALID
;
7079 moonEclipLong
= INVALID
;
7080 meanAnomalyMoon
= INVALID
;
7081 eclipObliquity
= INVALID
;
7082 siderealTime
= INVALID
;
7083 siderealT0
= INVALID
;
7084 moonPositionSet
= FALSE
;
7087 //private static void out(String s) {
7088 // System.out.println(s);
7091 //private static String deg(double rad) {
7092 // return Double.toString(rad * RAD_DEG);
7095 //private static String hours(long ms) {
7096 // return Double.toString((double)ms / HOUR_MS) + " hours";
7101 * @deprecated ICU 2.4. This class may be removed or modified.
7103 /*UDate CalendarAstronomer::local(UDate localMillis) {
7105 TimeZone *tz = TimeZone::createDefault();
7108 UErrorCode status = U_ZERO_ERROR;
7109 tz->getOffset(localMillis, TRUE, rawOffset, dstOffset, status);
7111 return localMillis - rawOffset;
7114 // Debugging functions
7115 UnicodeString
CalendarAstronomer::Ecliptic::toString() const
7117 #ifdef U_DEBUG_ASTRO
7119 sprintf(tmp
, "[%.5f,%.5f]", longitude
*RAD_DEG
, latitude
*RAD_DEG
);
7120 return UnicodeString(tmp
, "");
7122 return UnicodeString();
7126 UnicodeString
CalendarAstronomer::Equatorial::toString() const
7128 #ifdef U_DEBUG_ASTRO
7130 sprintf(tmp
, "%f,%f",
7131 (ascension
*RAD_DEG
), (declination
*RAD_DEG
));
7132 return UnicodeString(tmp
, "");
7134 return UnicodeString();
7138 UnicodeString
CalendarAstronomer::Horizon::toString() const
7140 #ifdef U_DEBUG_ASTRO
7142 sprintf(tmp
, "[%.5f,%.5f]", altitude
*RAD_DEG
, azimuth
*RAD_DEG
);
7143 return UnicodeString(tmp
, "");
7145 return UnicodeString();
7150 // static private String radToHms(double angle) {
7151 // int hrs = (int) (angle*RAD_HOUR);
7152 // int min = (int)((angle*RAD_HOUR - hrs) * 60);
7153 // int sec = (int)((angle*RAD_HOUR - hrs - min/60.0) * 3600);
7155 // return Integer.toString(hrs) + "h" + min + "m" + sec + "s";
7158 // static private String radToDms(double angle) {
7159 // int deg = (int) (angle*RAD_DEG);
7160 // int min = (int)((angle*RAD_DEG - deg) * 60);
7161 // int sec = (int)((angle*RAD_DEG - deg - min/60.0) * 3600);
7163 // return Integer.toString(deg) + "\u00b0" + min + "'" + sec + "\"";
7166 // =============== Calendar Cache ================
7168 void CalendarCache::createCache(CalendarCache
** cache
, UErrorCode
& status
) {
7169 ucln_i18n_registerCleanup(UCLN_I18N_ASTRO_CALENDAR
, calendar_astro_cleanup
);
7171 status
= U_MEMORY_ALLOCATION_ERROR
;
7173 *cache
= new CalendarCache(32, status
);
7174 if(U_FAILURE(status
)) {
7181 int32_t CalendarCache::get(CalendarCache
** cache
, int32_t key
, UErrorCode
&status
) {
7184 if(U_FAILURE(status
)) {
7189 if(*cache
== NULL
) {
7190 createCache(cache
, status
);
7191 if(U_FAILURE(status
)) {
7192 umtx_unlock(&ccLock
);
7197 res
= uhash_igeti((*cache
)->fTable
, key
);
7198 U_DEBUG_ASTRO_MSG(("%p: GET: [%d] == %d\n", (*cache
)->fTable
, key
, res
));
7200 umtx_unlock(&ccLock
);
7204 void CalendarCache::put(CalendarCache
** cache
, int32_t key
, int32_t value
, UErrorCode
&status
) {
7205 if(U_FAILURE(status
)) {
7210 if(*cache
== NULL
) {
7211 createCache(cache
, status
);
7212 if(U_FAILURE(status
)) {
7213 umtx_unlock(&ccLock
);
7218 uhash_iputi((*cache
)->fTable
, key
, value
, &status
);
7219 U_DEBUG_ASTRO_MSG(("%p: PUT: [%d] := %d\n", (*cache
)->fTable
, key
, value
));
7221 umtx_unlock(&ccLock
);
7224 CalendarCache::CalendarCache(int32_t size
, UErrorCode
&status
) {
7225 fTable
= uhash_openSize(uhash_hashLong
, uhash_compareLong
, NULL
, size
, &status
);
7226 U_DEBUG_ASTRO_MSG(("%p: Opening.\n", fTable
));
7229 CalendarCache::~CalendarCache() {
7230 if(fTable
!= NULL
) {
7231 U_DEBUG_ASTRO_MSG(("%p: Closing.\n", fTable
));
7232 uhash_close(fTable
);
7238 #endif // !UCONFIG_NO_FORMATTING