home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 1.5)
-
- ctime
- error = 'calendar.error'
- January = 1
- February = 2
- mdays = [
- 0,
- 31,
- 28,
- 31,
- 30,
- 31,
- 30,
- 31,
- 31,
- 30,
- 31,
- 30,
- 31]
- day_name = [
- 'Monday',
- 'Tuesday',
- 'Wednesday',
- 'Thursday',
- 'Friday',
- 'Saturday',
- 'Sunday']
- day_abbr = [
- 'Mon',
- 'Tue',
- 'Wed',
- 'Thu',
- 'Fri',
- 'Sat',
- 'Sun']
- month_name = [
- '',
- 'January',
- 'February',
- 'March',
- 'April',
- 'May',
- 'June',
- 'July',
- 'August',
- 'September',
- 'October',
- 'November',
- 'December']
- month_abbr = [
- ' ',
- 'Jan',
- 'Feb',
- 'Mar',
- 'Apr',
- 'May',
- 'Jun',
- 'Jul',
- 'Aug',
- 'Sep',
- 'Oct',
- 'Nov',
- 'Dec']
-
- def isleap(year):
- if not year % 4 == 0 and year % 100 != 0:
- pass
- return year % 400 == 0
-
-
- def leapdays(y1, y2):
- return (y2 + 3) / 4 - (y1 + 3) / 4
-
-
- def weekday(year, month, day):
- secs = mktime((year, month, day, 0, 0, 0, 0, 0, 0))
- tuple = localtime(secs)
- return tuple[6]
-
-
- def monthrange(year, month):
- if not None if month <= month else month <= 12:
- raise ValueError, 'bad month number'
-
- day1 = weekday(year, month, 1)
- if month == February:
- pass
- ndays = mdays[month] + isleap(year)
- return (day1, ndays)
-
-
- def _monthcalendar(year, month):
- (day1, ndays) = monthrange(year, month)
- rows = []
- r7 = range(7)
- day = 1 - day1
- while day <= ndays:
- row = [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0]
- for i in r7:
- if day <= day:
- pass
- elif day <= ndays:
- row[i] = day
-
- day = day + 1
-
- rows.append(row)
- continue
- r7
- return rows
-
- _mc_cache = { }
-
- def monthcalendar(year, month):
- key = (year, month)
- if _mc_cache.has_key(key):
- return _mc_cache[key]
- else:
- _mc_cache[key] = ret = _monthcalendar(year, month)
- return ret
-
-
- def _center(str, width):
- n = width - len(str)
- if n <= 0:
- return str
-
- return ' ' * ((n + 1) / 2) + str + ' ' * (n / 2)
-
-
- def prweek(week, width):
- for day in week:
- print _center(s, width),
-
-
-
- def weekheader(width):
- str = ''
- if width >= 9:
- names = day_name
- else:
- names = day_abbr
- for i in range(7):
- str = str + _center(names[i % 7][:width], width)
-
- return str
-
-
- def prmonth(year, month, w = 0, l = 0):
- w = max(2, w)
- l = max(1, l)
- print _center(month_name[month] + ' ' + `year`, 7 * (w + 1) - 1), '\n' * l, weekheader(w), '\n' * l,
- for week in monthcalendar(year, month):
- prweek(week, w)
- print '\n' * l,
-
-
- _colwidth = 7 * 3 - 1
- _spacing = ' ' * 4
-
- def format3c(a, b, c):
- print _center(a, _colwidth), _spacing, _center(b, _colwidth), _spacing, _center(c, _colwidth)
-
-
- def prcal(year):
- header = weekheader(2)
- format3c('', `year`, '')
- for q in range(January, January + 12, 3):
- print
- format3c(month_name[q], month_name[q + 1], month_name[q + 2])
- format3c(header, header, header)
- data = []
- height = 0
- for month in range(q, q + 3):
- cal = monthcalendar(year, month)
- data.append(cal)
-
- for i in range(height):
- for cal in data:
- print _spacing,
-
- print
-
-
-
-