from datetime import timedelta from datetime import date import locale def tex_write_year_overview(fd,year): fd.write(''' \\thispagestyle{empty} \\vspace*{-4em} \\begin{center} \\Huge\\textbf{Jahres\\"ubersicht\\ ''') fd.write(str(year)) fd.write('''} \\end{center} \\vspace*{-8pt} %%%%%%%%%%%%%%%%%%%%%%%%%%% % begin overview calender''') for month in range(1, 12 + 1): m = date(year, month, 1) if (month - 1) % 2 == 0 and month != 1: fd.write('\\newline') fd.write(''' \\begin{minipage}[t]{0.5\\textwidth} ''') fd.write(''' \\begin{tabular}{ccccc|cc||} ''') fd.write('\\multicolumn{6}{c}{\\textbf{ ' + m.strftime('%B') + '}}\\\\\n ') # print weeknames for i in range(0, 6 + 1): curr_date = date(year, month, 1) curr_date = curr_date + timedelta(days=i - curr_date.weekday()) fd.write('\\textbf{' + curr_date.strftime('%a') + '} ') if i == 6: fd.write('\\\\\n\r') fd.write(' \\hline\n\r') else: fd.write(' & ') # monthly numbers curr_date = date(year, month, 1) weekline = " " + " &" * curr_date.weekday() next_date = curr_date while curr_date.month == next_date.month: curr_date = next_date next_date = curr_date + timedelta(days=1) weekline = weekline + " " + str(curr_date.day) if (curr_date.weekday() == 6): # sunday weekline = weekline + "\\\\\n " else: weekline = weekline + "&" weekline = weekline + (" &" * (5 - curr_date.weekday())) + "\\\\\n\r" fd.write(weekline) fd.write(''' \\end{tabular} \\end{minipage}''') # if (month == 6): # fd.write('\\newpage\n\r') fd.write(''' % end overview calender %%%%%%%%%%%%%%%%%%%%%%%%%%% ''')