1# The day constants 2SUNDAY = 0 3MONDAY = 1 4TUESDAY = 2 5WEDNESDAY = 3 6THURSDAY = 4 7FRIDAY = 5 8SATURDAY = 6 9 10# Number of X in Y. 11YEARS_PER_CENTURY = 100 12YEARS_PER_DECADE = 10 13MONTHS_PER_YEAR = 12 14WEEKS_PER_YEAR = 52 15DAYS_PER_WEEK = 7 16HOURS_PER_DAY = 24 17MINUTES_PER_HOUR = 60 18SECONDS_PER_MINUTE = 60 19SECONDS_PER_HOUR = MINUTES_PER_HOUR * SECONDS_PER_MINUTE 20SECONDS_PER_DAY = HOURS_PER_DAY * SECONDS_PER_HOUR 21US_PER_SECOND = 1000000 22 23# Formats 24ATOM = "YYYY-MM-DDTHH:mm:ssZ" 25COOKIE = "dddd, DD-MMM-YYYY HH:mm:ss zz" 26ISO8601 = "YYYY-MM-DDTHH:mm:ssZ" 27ISO8601_EXTENDED = "YYYY-MM-DDTHH:mm:ss.SSSSSSZ" 28RFC822 = "ddd, DD MMM YY HH:mm:ss ZZ" 29RFC850 = "dddd, DD-MMM-YY HH:mm:ss zz" 30RFC1036 = "ddd, DD MMM YY HH:mm:ss ZZ" 31RFC1123 = "ddd, DD MMM YYYY HH:mm:ss ZZ" 32RFC2822 = "ddd, DD MMM YYYY HH:mm:ss ZZ" 33RFC3339 = ISO8601 34RFC3339_EXTENDED = ISO8601_EXTENDED 35RSS = "ddd, DD MMM YYYY HH:mm:ss ZZ" 36W3C = ISO8601 37 38 39EPOCH_YEAR = 1970 40 41DAYS_PER_N_YEAR = 365 42DAYS_PER_L_YEAR = 366 43 44USECS_PER_SEC = 1000000 45 46SECS_PER_MIN = 60 47SECS_PER_HOUR = 60 * SECS_PER_MIN 48SECS_PER_DAY = SECS_PER_HOUR * 24 49 50# 400-year chunks always have 146097 days (20871 weeks). 51SECS_PER_400_YEARS = 146097 * SECS_PER_DAY 52 53# The number of seconds in an aligned 100-year chunk, for those that 54# do not begin with a leap year and those that do respectively. 55SECS_PER_100_YEARS = ( 56 (76 * DAYS_PER_N_YEAR + 24 * DAYS_PER_L_YEAR) * SECS_PER_DAY, 57 (75 * DAYS_PER_N_YEAR + 25 * DAYS_PER_L_YEAR) * SECS_PER_DAY, 58) 59 60# The number of seconds in an aligned 4-year chunk, for those that 61# do not begin with a leap year and those that do respectively. 62SECS_PER_4_YEARS = ( 63 (4 * DAYS_PER_N_YEAR + 0 * DAYS_PER_L_YEAR) * SECS_PER_DAY, 64 (3 * DAYS_PER_N_YEAR + 1 * DAYS_PER_L_YEAR) * SECS_PER_DAY, 65) 66 67# The number of seconds in non-leap and leap years respectively. 68SECS_PER_YEAR = (DAYS_PER_N_YEAR * SECS_PER_DAY, DAYS_PER_L_YEAR * SECS_PER_DAY) 69 70DAYS_PER_YEAR = (DAYS_PER_N_YEAR, DAYS_PER_L_YEAR) 71 72# The month lengths in non-leap and leap years respectively. 73DAYS_PER_MONTHS = ( 74 (-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31), 75 (-1, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31), 76) 77 78# The day offsets of the beginning of each (1-based) month in non-leap 79# and leap years respectively. 80# For example, in a leap year there are 335 days before December. 81MONTHS_OFFSETS = ( 82 (-1, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365), 83 (-1, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366), 84) 85 86DAY_OF_WEEK_TABLE = (0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4) 87 88TM_SUNDAY = 0 89TM_MONDAY = 1 90TM_TUESDAY = 2 91TM_WEDNESDAY = 3 92TM_THURSDAY = 4 93TM_FRIDAY = 5 94TM_SATURDAY = 6 95 96TM_JANUARY = 0 97TM_FEBRUARY = 1 98TM_MARCH = 2 99TM_APRIL = 3 100TM_MAY = 4 101TM_JUNE = 5 102TM_JULY = 6 103TM_AUGUST = 7 104TM_SEPTEMBER = 8 105TM_OCTOBER = 9 106TM_NOVEMBER = 10 107TM_DECEMBER = 11 108