Xử lý ngày tháng qua calendar built-in là cốt lõi của nhiều ứng dụng. Bài này giới thiệu các hàm nâng cao của module calendar.
1. firstweekday() - Thứ bắt đầu tuần
import calendar
print("Thứ bắt đầu tuần (0=Mon, 6=Sun):", calendar.firstweekday())
Kết quả
Thứ bắt đầu tuần (0=Mon, 6=Sun): 0
2. leapdays(start_year, end_year) - Số ngày nhuận trong khoảng
Đếm ngày 29/2 giữa 2 năm (bao gồm start_year, không bao gồm end_year).
import calendar
print("Số ngày nhuận 1980-2015:", calendar.leapdays(1980, 2015))
Kết quả
Số ngày nhuận 1980-2015: 9
3. HTMLCalendar - Xuất lịch dạng HTML
Tạo bảng HTML cho tháng, có thể tùy chỉnh CSS class.
import calendar hc = calendar.HTMLCalendar(calendar.TUESDAY) # Tuần bắt đầu Thứ 3 html_output = hc.formatmonth(2019, 3) print(html_output)
Kết quả (HTML table)
| March 2019 | ||||||
|---|---|---|---|---|---|---|
| Tue | Wed | Thu | Fri | Sat | Sun | Mon |
| 1 | 2 | 3 | 4 | |||
CSS class có sẵn: month, tue...mon, noday (ngày ngoài tháng), today (ngày hiện tại).
4. TextCalendar & LocaleTextCalendar
# TextCalendar mặc định tc = calendar.TextCalendar() print(tc.formatmonth(2019, 3)) # LocaleTextCalendar - hỗ trợ ngôn ngữ import locale lc = calendar.LocaleTextCalendar(locale='vi_VN') print(lc.formatmonth(2019, 3))
Kết luận
Module calendar cung cấp: firstweekday(), setfirstweekday(), leapdays(), HTMLCalendar, TextCalendar, LocaleTextCalendar cho mọi nhu cầu hiển thị lịch.