123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /* $OpenBSD: tzfile.h,v 1.8 2007/02/06 19:35:16 millert Exp $ */
- #ifndef TZFILE_H
- #define TZFILE_H
- /*
- ** This file is in the public domain, so clarified as of
- ** 1996-06-05 by Arthur David Olson.
- */
- /*
- ** This header is for use ONLY with the time conversion code.
- ** There is no guarantee that it will remain unchanged,
- ** or that it will remain at all.
- ** Do NOT copy it to any system include directory.
- ** Thank you!
- */
- #define SECSPERMIN 60
- #define MINSPERHOUR 60
- #define HOURSPERDAY 24
- #define DAYSPERWEEK 7
- #define DAYSPERNYEAR 365
- #define DAYSPERLYEAR 366
- #define SECSPERHOUR (SECSPERMIN * MINSPERHOUR)
- #define SECSPERDAY ((long) SECSPERHOUR * HOURSPERDAY)
- #define MONSPERYEAR 12
- #define TM_SUNDAY 0
- #define TM_MONDAY 1
- #define TM_TUESDAY 2
- #define TM_WEDNESDAY 3
- #define TM_THURSDAY 4
- #define TM_FRIDAY 5
- #define TM_SATURDAY 6
- #define TM_JANUARY 0
- #define TM_FEBRUARY 1
- #define TM_MARCH 2
- #define TM_APRIL 3
- #define TM_MAY 4
- #define TM_JUNE 5
- #define TM_JULY 6
- #define TM_AUGUST 7
- #define TM_SEPTEMBER 8
- #define TM_OCTOBER 9
- #define TM_NOVEMBER 10
- #define TM_DECEMBER 11
- #define TM_YEAR_BASE 1900
- #define EPOCH_YEAR 1970
- #define EPOCH_WDAY TM_THURSDAY
- #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
- /*
- ** Since everything in isleap is modulo 400 (or a factor of 400), we know that
- ** isleap(y) == isleap(y % 400)
- ** and so
- ** isleap(a + b) == isleap((a + b) % 400)
- ** or
- ** isleap(a + b) == isleap(a % 400 + b % 400)
- ** This is true even if % means modulo rather than Fortran remainder
- ** (which is allowed by C89 but not C99).
- ** We use this to avoid addition overflow problems.
- */
- #define isleap_sum(a, b) isleap((a) % 400 + (b) % 400)
- #endif /* !defined TZFILE_H */
|