Python My Calendar
#!/usr/bin/env python
import calendar, webbrowser
#generate html file
def make_html( listofdate, month ):
#loop for body in html
body = """<table border="0" cellpadding="2">"""
a = 0
for quarters in listofdate:
body = body + """<tr valign="top">"""
for months in quarters:
body = body + """<td><table border="5" cellpadding="10"><center><font color="white" size = "6">""" + month[a] + """</font></center><tr><td align="center"><font color="white" size = "3">Sun</font></td><td align="center"><font color="white" size = "3">Mon</font></td><td align="center"><font color="white" size = "3">Tue</font></td><td align="center"><font color="white" size = "3">Wed</font></td><td align="center"><font color="white" size = "3">Thu</font></td><td align="center"><font color="white" size = "3">Fri</font></td><td align="center"><font color="white" size = "3">Sat</font></td></tr>"""
for weeks in months:
body = body + "<tr>"
for days in weeks:
if days != 0:
body = body + """<td align="right"><font color="white" size = "4">""" + str(l) + "</font></td>"
else:
body = body + "<td>" "</td>"
body = body + "</tr>"
body = body + "</table></td>"
a += 1
body = body + "</tr>"
body = body + "</table>"
file = open("./mycal.html", 'w')
file.write("""
<html>
<head>
<title>Calendar 2013</title>
</head>
<body bgcolor="skyblue">
<center><br><font color="white" size = "10">
Calendar 2013</font><br><br>
"""+body+ """
</center>
</body>
</html>
""")
file.close()
print "Generate HTML Complete"
month = ["January","Febuary","March","April","May","June","July","August","September","October","November","December"]
mycal = calendar.HTMLCalendar(calendar.SUNDAY)
make_html( mycal.yeardayscalendar(2012),month)
webbrowser.open("./mycal.html")
จากโค้ดข้างบนนี้เริ่มต้นด้วยการ
import calendar และ
webbrowser ซึ่ง
calendar นั้นเป็น
library ที่มีมาแล้วของ
python ซึ่งเกี่ยวกับปฎิทินเราจึงจะนำมาประยุกต์ใช้กับ
โปรแกรมของเราซึ่ง โปรแกรมนี้มี
1 Function คือ
make_html และมี
list ที่เก็บข้อมูลของชื่อเดือนทั้ง
12 เดือนชื่อ
month
โดยที่
make_html มี
Arguments 2 ตัวคือ
listofdate กับ
month ซึ่ง
month ก็เอาค่าของ
list ที่เก็บข้อมูลของชื่อเดือนที่เราสร้างไว้ตอนแรกส่งมา
ส่วน listofdate นั้นมาจากการ
generate ออกมาเป็น
list ของวันที่ด้วย
calendar ที่เรา
import มาในตอนแรก
โดยจากโค้ดในบรรทัด mycal
= calendar.HTMLCalendar(calendar.SUNDAY)
คือการสร้าง
object จาก
calendar เป็นแบบ
HTMLCalendar
และกำหนดวันแรกของอาทิตย์เป็นวันอาทิตย์นั่นเองจากนั้น
ตอนที่เรียก Function make_html
ก็เรียกคำสั่ง
mycal.yeardayscalendar(2013) ซึ่งจะได้ออกมาเป็น
list ที่เก็บข้อมูลเป็น
4 ช่วงของ
1 ปี
ในแต่ละช่วงก็จะมี list
ของ 3
เดือน และ
ในแต่ละเดือนก็จะแบ่งเป็น
list ของแต่ละอาทิตย์
และในแต่ละอาทิตย์ก็จะเก็บข้อมูลของวันที่ตามวันโดยเรียงจากวันอาทิตย์-วันเสาร์
หากสัปดาห์ไหนไม่มี
วันนั้นอยู่เช่นต้นเดือนเริ่มที่วัน
ศุกร์ วันอาทิตย์ -
วันพฤหัสบดี
ก็จะมีเลขวันเป็นเลข 0
ในกรณีสัปดาห์สิ้นเดือนก็เช่นกันโดยในส่วนของ
body โค้ด
HTML ก็ทำการวน
loop เพื่อเข้าถึงวันที่ที่อยู่ใน
list ทั้งหมดและทำเป็นตารางใน
HTML โดยแถวนึงจะมี
3 เดือนเมื่อสร้างเสร็จแล้วก็จะ
print "Generate HTML Complete"
ออกมาทางหน้าจอและเปิดปฎิทิน
HTML ของเราโดยใช้
webbrowser เปิดทันที
จากโปรแกรมนี้จะเห็นว่าใน Python นั้นเรามี API ที่ชื่อ calendar ซึ่งสามารถสร้าง List ที่เก็บวันที่ของทั้งปีได้ หรือจะสร้างเป็นเดือนก็ได้เช่นกันโดย API นี้นอกจากจะสามารถสร้าง List ของวันที่ได้แล้วยังสามารถสร้างออกมาเป็นโค้ด HTML สำเร็จรูปออกมาได้เลยเช่นกัน แต่ผู้เขียนเลือกใช้แบบที่สร้าง List ของวันที่ออกมาใช้เพราะมีความยืดหยุ่นในรูปแบบของการแสดงผลให้ได้ตามที่ต้องการ
โดยได้ศึกษาการเขียนโค้ด HTML จากเว็บ w3schools.com
เว็บสำหรับศึกษา API Calendar จากเว็บ Python.org
จากโปรแกรมนี้จะเห็นว่าใน Python นั้นเรามี API ที่ชื่อ calendar ซึ่งสามารถสร้าง List ที่เก็บวันที่ของทั้งปีได้ หรือจะสร้างเป็นเดือนก็ได้เช่นกันโดย API นี้นอกจากจะสามารถสร้าง List ของวันที่ได้แล้วยังสามารถสร้างออกมาเป็นโค้ด HTML สำเร็จรูปออกมาได้เลยเช่นกัน แต่ผู้เขียนเลือกใช้แบบที่สร้าง List ของวันที่ออกมาใช้เพราะมีความยืดหยุ่นในรูปแบบของการแสดงผลให้ได้ตามที่ต้องการ
โดยได้ศึกษาการเขียนโค้ด HTML จากเว็บ w3schools.com
เว็บสำหรับศึกษา API Calendar จากเว็บ Python.org
ไม่มีความคิดเห็น:
แสดงความคิดเห็น