15 มีนาคม 2558

Published 3/15/2558 by with 0 comment

calendar ปฏิทิน กับ Python

สวัสดีผู้อ่านทุกท่านครับ ผู้อ่านเขียนโปรแกรมบนภาษา Python กันมาแล้ว ไม่ว่าจะเป็นเรื่องวันและเวลา แต่ถ้าเราต้องการสร้างปฏิทินหรือเขียนโปรแกรมที่เกี่ยวข้องกับปฏิทิน เราสามารถใช้ไลบรารีมาตรฐานที่มากับ Python ได้ ไลบรารีนั้นมีชื่อว่า calendar

เนื่องจากไลบรารี calendar เป็นไลบรารีมาตรฐานของ Python มีรายละเอียดที่ปลีกย่อยมากมาย ผมจึงจะขอนำเสนอการใช้งานคำสั่งในไลบรารีนี้ที่ใช้งานบ่อยครับ

ในการใช้งานไลบรารี calendar ต้อง import เข้ามาทุกครั้ง ดังนี้

[python]
import calendar
[/python]





คำสั่งแสดงปฏิทินทั้งปี

มีลักษณะคำสั่งดังนี้

[python]
calendar.prcal(ปี ค.ศ. ที่ต้องการ)
[/python]

ตัวอย่างการใช้งาน

[python]
import calendar
print(calendar.prcal(2015))
[/python]

ผลลัพธ์




คำสั่งแสดงปฏิทินเฉพาะเดือนที่กำหนด

[python]
calendar.prmonth(ปี ค.ศ. ที่ต้องการ , เดือนที่ต้องการ)
[/python]

หรือจะใช้อีกคำสั่งคืนผลลัพธ์ออกมาเป็นข้อความ string หลายบรรทัด

[python]
calendar.month(ปี ค.ศ. ที่ต้องการ , เดือนที่ต้องการ)
[/python]

ตัวอย่างการใช้งาน

[python]
import calendar
print(calendar.prmonth(2015, 3))
print(calendar.month(2015, 3))
[/python]

ผลลัพธ์




 

คำสั่งเช็คว่าวันที่กำหนดเป็นวันที่เท่าไรในสัปดาห์นั้น
มีคำสั่งดังนี้

[python]
calendar.weekday(ปี ค.ศ. ที่ต้องการ , เดือนที่ต้องการ, วันที่)
[/python]

ในภาษา Python คำสั่งนี้จะมีเลขระหว่าง 0 - 6 โดยค่าเบื้องต้น 0 เป็นวันจัทร์และ 6 เป็นวันอาทิตย์
มีลักษณะการใช้งานตามตัวอย่างดังนี้

[python]
import calendar
print(calendar.weekday(2015, 3, 14))
[/python]

ผลลัพธ์
5
แสดงว่า วันที่ 14 เดือนมีนาคม ค.ศ. 2015 นี้เป็นวันเสาร์ครับ




คำสั่งนับจำนวนสัปดาห์และจำนวนวันในเดือนที่กำหนด
เราสามารถนับจำนวนสัปดาห์และจำนวนวันในเดือนที่กำหนดได้โดยจะคืนค่ามาเป็น tuple ด้วยคำสั่ง

[python]
calendar.monthrange(ปี ค.ศ. ที่ต้องการ , เดือนที่ต้องการ)
[/python]

ตัวอย่างการใช้งาน

[python]
import calendar
print(calendar.monthrange(2015, 3))
[/python]

ผลลัพธ์
(6, 31)
แสดงว่า เดือนมีนาคม ค.ศ. 2015 มี 6 สัปดาห์ มี 31 วัน



คำสั่งแสดงปฏิทินของเดือนเป็น matrix

แสดงปฏิทินในเดือนที่กำหนด โดยค่าจะออกมาเป็น matrix โดยแถวจะเรียงตามสัปดาห์ และเรียงตามวันทั้ง 7 วัน

[python]
calendar.monthcalendar(ปี ค.ศ. ที่ต้องการ, เดือนที่ต้องการ)
[/python]

ตัวอย่างการใช้งาน

[python]
import calendar
print(calendar.monthcalendar(2015, 3))
[/python]

ผลลัพธ์

[python][[0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0]][/python]





คำสั่งสร้างปฏิทินเป็นโค้ด HTML
ไลบรารี calendar สามารถสร้างปฏิทินออกมาเป็นโค้ด HTML ได้ โดยใช้คำสั่ง

[python]
calendar.HTMLCalendar()
[/python]

สามารถใช้งานคำสั่งได้ตามตัวอย่างดังนี้

[python]
import calendar
c = calendar.HTMLCalendar()
print(c.formatmonth(2015, 3))
[/python]

ผลลัพธ์

[html]
<table border="0" cellpadding="0" cellspacing="0" class="month">
<tr><th colspan="7" class="month">March 2015</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
<tr><td class="mon">30</td><td class="tue">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
[/html]

แสดงผลลัพธ์ในหน้าเว็บจะเป็น





































































March 2015
MonTueWedThuFriSatSun
1
2345678
9101112131415
16171819202122
23242526272829
3031


อ่านรายละเอียดปลีกย่อยของไลบรารี calendar ของ Python ได้ที่ https://docs.python.org/3/library/calendar.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)