style = {
'units' : 'mm',
'width' : 100,
'height' : 70,
'year-color' : '#666666',
'year-padding-top' : 5,
'year-font-family' : 'Consolas',
'year-font-size' : 5,
'month-width' : 24,
'month-height' : 21,
'day-width' : 23.0/7.0,
'day-height' : 12.0/5.0,
'month-margin-x' : 100,
'month-margin-y' : 100,
'month-font-family' : 'Consolas',
'month-font-size' : 3,
'month-color' : '#FF9525',
'month-padding-top' : 3,
'month-offset-top' : 5,
'week-padding-top' : 6,
'week-font-family' : 'Consolas',
'week-font-size' : 1.5,
'day-padding-top' : 6,
'day-font-family' : 'Consolas',
'day-font-size' : 2.5,
'day-color' : '#000000',
'day-holiday-color' : '#79B1D4',
'week-color' : '#999',
'week-holiday-color' : '#79B1D4',
}
month_names = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '0A', '0B', '0C']
days_count = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
month_beginning = [4, 7, 7, 3, 5, 1, 3, 6, 2, 4, 7, 2]
holidays = [ (1,1), (1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (1,8), (1,9), (1,10), (3, 8), (3,9), (5, 1), (5,11), (6,12), (11,4) ]
not_holidays = [ (1,11) ]
# days_names = ['01', '02', '03', '04', '05', '06', '07']
days_names = ['001', '010', '011', '100', '101', '110', '111']
def is_holiday (month, day, day_of_week):
global holidays, not_holidays
if day_of_week > 5:
return (month, day) not in not_holidays
return (month, day) in holidays
def day (x, y, month, day, day_of_week):
global style
if is_holiday (month, day, day_of_week):
color = style ['day-holiday-color']
else:
color = style ['day-color']
print ''% (x + 0.5*style['day-width'], y, style['day-font-family'], style['day-font-size'], color)
print '%02x' % day
print ''
def week (x,y):
global style, days_names
print ''
for i in range (7):
if i < 5:
color = style['week-color']
else:
color = style['week-holiday-color']
print ''% (x + (i +0.5)* style['day-width'],y, style['week-font-family'], style['week-font-size'], color)
print '%s' % (days_names [i])
print ''
print ''
def month (x,y, no):
global style, month_names, month_beginning
print ''
print ''% (x + style['month-width']/2,y+style['month-padding-top'], style['month-font-family'], style['month-font-size'], style['month-color'])
print '%s' % (month_names [no-1])
print ''
week (x, y+style['week-padding-top'])
for i in range(days_count[no-1]):
day_of_week = (month_beginning[no-1] + i) % 7
if day_of_week == 0: day_of_week = 7
xx = x + style['day-width'] * (day_of_week - 1)
week_no = ((month_beginning[no-1] + i) / 7 + 1)
if day_of_week == 7: week_no = week_no - 1
yy = y + style['day-padding-top'] + week_no * style['day-height']
day (xx, yy, no, i+1, day_of_week)
print ''
def year (x, y, no):
global style
print ''
print ''% (x + style['width']/2,y+style['year-padding-top'], style['year-font-family'], style['year-font-size'], style['year-color'])
print '7D9'
print ''
for i in range (12):
xx = i % 4
yy = i / 4
month (x+ xx*style['month-width'], y + style['month-offset-top']+ yy*style['month-height'], i+1)
print ''
print ''
print ''