Modul Kalender Python: Panduan Ahli dengan Contoh Kode
Modul bawaan calendar Python menawarkan alat yang kuat untuk bekerja dengan tanggal, bulan, dan tahun. Dengan memanfaatkan kelas seperti TextCalendar dan HTMLCalendar, pengembang dapat membuat kalender yang dapat dicetak atau ramah web, mengiterasi hari, dan bahkan menghitung aturan penjadwalan kustom.
Di bawah ini adalah walkthrough langkah demi langkah dari kasus penggunaan paling umum, lengkap dengan cuplikan kode siap jalankan untuk Python 2 dan Python 3.
Langkah 1 – Buat Kalender Teks
Jalankan skrip berikut untuk melihat kalender teks biasa untuk Januari 2025, memulai minggu pada Kamis:
- Baris 1:
import calendar memuat modul. - Baris 3:
c = calendar.TextCalendar(calendar.THURSDAY) membuat objek kalender yang minggunya dimulai pada Kamis. - Baris 4:
txt = c.formatmonth(2025, 1) memformat bulan Januari 2025. - Baris 5:
print(txt) mengeluarkan kalender.
Ubah hari awal menjadi Minggu untuk memverifikasi fleksibilitasnya:
Langkah 2 – Render Kalender HTML
Untuk aplikasi web, HTMLCalendar dapat menghasilkan tabel HTML lengkap yang dapat diubah gaya dengan CSS:
Langkah 3 – Iterasi Melalui Hari dalam Sebuah Bulan
Metode itermonthdays menghasilkan semua hari dalam bulan, termasuk nol pengisi untuk hari yang termasuk dalam bulan bersebelahan. Ini berguna untuk menyelaraskan kalender:
- Nol menunjukkan slot yang berada di luar bulan target.
- Mereka membantu menentukan minggu di mana bulan dimulai dan berakhir.
Langkah 4 – Ambil Nama yang Menyadari Locale
Python secara otomatis menghormati locale sistem untuk nama bulan dan hari. Di bawah ini adalah contoh output saat mencetak calendar.month_name dan calendar.day_name:
Pengaturan locale bervariasi dari satu mesin ke mesin lain, jadi hasilnya mungkin berbeda untuk pengguna di negara lain.
Langkah 5 – Hitung Tanggal Kustom (misalnya, Senin Pertama dari Setiap Bulan)
Di bawah ini adalah skrip ringkas yang menemukan senin pertama dari setiap bulan pada tahun 2025:
Logika menggunakan calendar.monthcalendar untuk mendapatkan matriks minggu, lalu memeriksa dua minggu pertama untuk nilai Senin yang bukan nol.
Contoh Python 2
import calendar # Buat kalender teks biasa c = calendar.TextCalendar(calendar.THURSDAY) text = c.formatmonth(2025, 1) print text # Buat kalender yang diformat HTML hc = calendar.HTMLCalendar(calendar.THURSDAY) html = hc.formatmonth(2025, 1) print html # Loop melalui hari dalam bulan for i in c.itermonthdays(2025, 4): print i # Nama bulan dan hari yang menyadari locale for name in calendar.month_name: print name for day in calendar.day_name: print day # Temukan senin pertama dari setiap bulan for month in range(1, 13): mycal = calendar.monthcalendar(2025, month) week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: auditday = week2[calendar.MONDAY] print "%10s %2d" % (calendar.month_name[month], auditday)
Contoh Python 3
import calendar # Buat kalender teks biasa c = calendar.TextCalendar(calendar.THURSDAY) text = c.formatmonth(2025, 1) print(text) # Buat kalender yang diformat HTML hc = calendar.HTMLCalendar(calendar.THURSDAY) html = hc.formatmonth(2025, 1) print(html) # Loop melalui hari dalam bulan for i in c.itermonthdays(2025, 4): print(i) # Nama bulan dan hari yang menyadari locale for name in calendar.month_name: print(name) for day in calendar.day_name: print(day) # Temukan senin pertama dari setiap bulan for month in range(1, 13): mycal = calendar.monthcalendar(2025, month) week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: auditday = week2[calendar.MONDAY] print("%10s %2d" % (calendar.month_name[month], auditday)) Kesimpulan
- Kesuaikan hari awal minggu dan format dengan
TextCalendar dan HTMLCalendar. - Gunakan
itermonthdays untuk tata letak kalender yang tepat, menangani nol pengisi. - Data locale secara otomatis tersedia melalui
calendar.month_name dan calendar.day_name. - Hitung tanggal berbasis aturan (misalnya, senin pertama) menggunakan
calendar.monthcalendar dan logika sederhana.