年間カレンダー
Posted feedbacks - Python
標準出力へ。
1 2 3 4 | import sys
import calendar
calendar.prcal(int(sys.argv[1]))
|
Python/Tkinterで組んでみました。組んだはいいが、結構重い・・・(レイアウトを工夫すればもっと速くできるかもしれませんが)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | # coding: shift_jis
import Tkinter as Tk
import calendar
import sys
def grid_configure(frame, col_count, row_count):
for col in xrange(col_count):
frame.grid_columnconfigure(col, weight=1)
for row in xrange(row_count):
frame.grid_rowconfigure(row, weight=1)
class MonthPanel(Tk.Frame):
def __init__(self, master, year, month):
Tk.Frame.__init__(self, master)
label = Tk.Label(self, text=u"%d月" % month)
label.pack(side=Tk.TOP, fill=Tk.X)
frame = Tk.Frame(self)
frame.pack(side=Tk.TOP, fill=Tk.BOTH, expand=True)
grid_configure(frame, 7, 7)
def create_label(row, col):
label = Tk.Label(frame, bg="white")
label.grid(row=row, column=col, sticky="news", padx=1, pady=1)
return label
labels = [[create_label(row, col) for col in xrange(7)] for row in xrange(7)]
def text(col, row, s, color="white"):
labels[row][col].configure(text=s, bg=color)
for col, s in enumerate(u"日月火水木金土"):
if col == 0:
color = "#F7CACA"
elif col == 6:
color = "#CEFFFF"
else:
color = "#E7FFE7"
text(col, 0, s, color)
for row, a in enumerate(calendar.Calendar(6).monthdayscalendar(year, month)):
for col, day in enumerate(a):
if day:
text(col, row + 1, day)
def main():
if len(sys.argv) != 2:
sys.stderr.write("usage: year\n")
return
year = int(sys.argv[1])
root = Tk.Tk()
root.title(u"%d年 年間カレンダー" % year)
grid_configure(root, 4, 3)
for i in xrange(12):
frame = MonthPanel(root, year, i + 1)
frame.grid(row=i/4, column=i%4, sticky="news", padx=2, pady=2)
root.mainloop()
if __name__ == '__main__':
main()
|

186
#4884()
Rating4/4=1.00
nを入力としてn年の年間カレンダーを返すプログラムを作ってください 少なくとも日曜日と土曜日が判別出来るようにしてください 出力は標準出力でもファイルでも構いません デザインは各自のお好みで 出力例1: (y-calendar 2008)=> #=Saturday, @=Sunday 2008/1 1 2 3 4 #5 @6 7 ... 2008/2 1 #2 @3 4 5 6 7 ... ... 2008/12 1 2 3 4 5 #6 @7 ... 出力例2: (y-calendar 2008)=> M T W T F S S M 2008/ 1 1 2 3 4 5 6 7 ... 2008/ 2 1 2 3 4 ... ... 2008/12 1 2 3 4 5 6 7 8 ... 出力例3: (y-calendar 2008)は2008.htmlを出力する 2008.htmlの中身 ---- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>2008 calendar</title> <style type="text/css"> * {font-family: monospace;} span {margin: 0px 3px;} span.sunday {color:red;font-weight:bold;} span.saturday {color:blue;font-weight:bold;} dd ul li{display:inline;} </style> </head> <body> <h1>2008 calendar</h1> <dl> <dt>2008/1</dt> <dd><ul> <li><span class="weekday">1</span></li> <li><span class="weekday">2</span></li> <li><span class="weekday">3</span></li> <li><span class="weekday">4</span></li> <li><span class="saturday">5</span></li> <li><span class="sunday">6</span></li> ... </ul></dd> ... </dl> </body> </html> ----[ reply ]