amiga-tz/library/time_length.h

67 lines
1.5 KiB
C

#ifndef _TIME_LENGTH_H
#define _TIME_LENGTH_H
// Maximum number of leap second corrections
#ifndef TZ_MAX_LEAPS
# define TZ_MAX_LEAPS 50
#endif
#define SECSPERMIN 60
#define MINSPERHOUR 60
#define HOURSPERDAY 24
#define DAYSPERWEEK 7
#define DAYSPERNYEAR 365
#define DAYSPERLYEAR 366
#define SECSPERHOUR (SECSPERMIN * MINSPERHOUR)
#define SECSPERDAY ((int_fast32_t) 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))
// years before a Gregorian repeat
#ifndef YEARSPERREPEAT
# define YEARSPERREPEAT 400
#endif
// The Gregorian year averages 365.2425 days, which is 31556952 seconds.
#ifndef AVGSECSPERYEAR
# define AVGSECSPERYEAR 31556952L
#endif
#ifndef SECSPERREPEAT
# define SECSPERREPEAT ((int_fast64_t) YEARSPERREPEAT * (int_fast64_t) AVGSECSPERYEAR)
#endif
#ifndef SECSPERREPEAT_BITS
# define SECSPERREPEAT_BITS 34 // ceil(log2(SECSPERREPEAT))
#endif
extern const int mon_lengths[2][MONSPERYEAR];
extern const int year_lengths[2];
#endif