Python การใช้งานโมดูล calendar

โมดูล calendar ใน Python ใช้สำหรับการจัดการและแสดงผลข้อมูลเกี่ยวกับวันที่และปฏิทิน มีฟังก์ชันหลายอย่างที่ช่วยในการสร้างปฏิทิน การเช็ควันต่าง ๆ เช่น วันที่ในสัปดาห์ วันแรกของเดือน หรือการตรวจสอบปีอธิกสุรทิน (leap year) เป็นต้น

การใช้งานโมดูล calendar

การนำเข้าโมดูล calendar

Python
import calendar

การแสดงผลปฏิทินประจำเดือน ฟังก์ชัน month() ใช้เพื่อแสดงปฏิทินของเดือนที่ต้องการ โดยระบุปีและเดือน

Python
year = 2024
month = 9
print(calendar.month(year, month))

ผลลัพธ์

การแสดงผลปฏิทินทั้งปี ฟังก์ชัน calendar() ใช้เพื่อแสดงปฏิทินทั้งปี

Python
year = 2024
print(calendar.calendar(year))

ตรวจสอบวันแรกของเดือนและจำนวนวันในเดือน ฟังก์ชัน monthrange() คืนค่าเป็น tuple ประกอบด้วย วันแรกของเดือน (0 = วันจันทร์) และจำนวนวันในเดือนนั้น

Python
year = 2024
month = 9
first_day, days_in_month = calendar.monthrange(year, month)
print(f"วันแรกของเดือน: {first_day}, จำนวนวันในเดือน: {days_in_month}")

เช็คปีอธิกสุรทิน ฟังก์ชัน isleap() ใช้เพื่อตรวจสอบว่าปีนั้นเป็นปีอธิกสุรทินหรือไม่

Python
year = 2024
print(calendar.isleap(year))  # ผลลัพธ์จะเป็น True ถ้าเป็นปีอธิกสุรทิน

หาจำนวนปีอธิกสุรทินในช่วงเวลา ฟังก์ชัน leapdays() ใช้เพื่อคำนวณจำนวนปีอธิกสุรทินระหว่างช่วงปีที่กำหนด

Python
start_year = 2000
end_year = 2025
print(calendar.leapdays(start_year, end_year))  # นับปีอธิกสุรทินตั้งแต่ปี 2000 ถึง 2024

การสร้างปฏิทินแบบกำหนดเอง โมดูล calendar ยังรองรับการสร้างปฏิทินแบบกำหนดวันเริ่มต้นของสัปดาห์ โดยใช้ TextCalendar

Python
# สร้างปฏิทินที่เริ่มต้นสัปดาห์ด้วยวันอาทิตย์
c = calendar.TextCalendar(firstweekday=6)  # 6 คือ วันอาทิตย์
print(c.formatmonth(2024, 9))

การสร้างปฏิทินเป็น HTML ฟังก์ชัน HTMLCalendar() สามารถสร้างปฏิทินในรูปแบบ HTML เพื่อใช้บนเว็บไซต์

Python
html_calendar = calendar.HTMLCalendar(firstweekday=6)
print(html_calendar.formatmonth(2024, 9))

การใช้ iterweekdays() เพื่อวนลูปตามวันในสัปดาห์ ฟังก์ชัน iterweekdays() จะคืนค่า iterator ที่วนลูปตามวันในสัปดาห์

Python
for day in calendar.Calendar().iterweekdays():
    print(day, end=" ")  # ผลลัพธ์จะเป็นตัวเลขที่แทนวันในสัปดาห์ (0 = จันทร์, 6 = อาทิตย์)

การใช้ itermonthdays() เพื่อวนลูปวันที่ในเดือน ฟังก์ชัน itermonthdays() คืนค่า iterator ที่แสดงลำดับวันในเดือนนั้น

Python
year = 2024
month = 9
for day in calendar.Calendar().itermonthdays(year, month):
    print(day, end=" ")  # ผลลัพธ์จะเป็นตัวเลขของวันที่ในเดือน หากวันนั้นไม่ใช่ของเดือนจะได้ 0
แชร์เรื่องนี้