Modul kalender di Python memiliki kelas kalender yang memungkinkan perhitungan untuk berbagai tugas berdasarkan tanggal, bulan, dan tahun. Selain itu, kelas TextCalendar dan HTMLCalendar dengan Python memungkinkan Anda untuk mengedit kalender dan menggunakannya sesuai kebutuhan Anda.
Mari kita lihat apa yang bisa kita lakukan dengan Kalender Python.
Langkah1) Jalankan kodenya.
Baris Kode #1:Kita mulai dengan “import calendar” yang akan mengimpor semua kelas dari modul ini.
Baris Kode # 3:c=calendar.TextCalendar(calendar.SUNDAY) memberitahu penerjemah untuk membuat kalender teks. Awal bulan adalah hari Minggu. Dengan Python, Anda dapat memformat kalender karena Anda dapat mengubah hari dalam sebulan untuk memulainya
Baris Kode # 4:str=c.formatmonth(2025,1) Kami membuat kalender untuk tahun 2025, Bulan 1 – Januari
Baris Kode # 5:print str akan mencetak output.
Mari kita ubah nilainya dengan cepat dari Minggu ke Kamis dan periksa hasilnya
Langkah 2) Anda juga dapat mencetak Kalender dalam format HTML, fitur ini berguna bagi pengembang jika mereka ingin melakukan perubahan pada tampilan dan nuansa kalender
Langkah 3) Loop selama hari dalam sebulan dengan menggunakan c.itermonthday (2025,4), itu akan mengambil jumlah total hari untuk bulan itu.
Saat Anda menjalankan kode untuk mendapatkan jumlah total hari untuk bulan tertentu, katakan "April" maka Anda akan mendapatkan 30 hari dalam output tetapi Anda juga akan melihat beberapa nol bersama dengan hari-hari ini di awal dan terkadang di awal selesai.
Nol pada output berarti hari dalam seminggu berada dalam bulan yang tumpang tindih, yang berarti bukan milik bulan itu.
Nol ini muncul di output karena, dalam kode Anda, Anda telah menyebutkan hari (Kamis), jadi ketika Anda memanggil fungsi "c.itermonthdays", itu akan mulai menghitung hari dari Kamis dan Kamis Anda mungkin tidak dimulai dengan tanggal 1
st
bulan April mungkin tanggal 28
atau tanggal 29
Maret, jadi ketika Anda mengeksekusi kode itu akan mulai menghitung hari dari 28
th
bulan Maret dan hari apa pun setelahnya hingga tanggal 1
dari April. Hari-hari ini akan dihitung sebagai nol dan dalam output Anda akan melihat angka nol ini dan hal yang sama berlaku hingga akhir bulan.
Jadi, kecuali tanggal 1-30, semua tanggal dari bulan sebelumnya dan setelahnya akan muncul di output sebagai nol.
Langkah 4) Anda dapat mengambil data dari sistem lokal, seperti bulan atau hari kerja, dll
Output di sini menunjukkan bahwa kami telah mencetak nama bulan dari sistem lokal. Demikian juga, Anda juga dapat mengambil nama hari kerja seperti yang ditunjukkan di bawah ini
Output akan tergantung pada sistem lokal, misalkan jika sistem lokal Anda adalah beberapa negara lain maka akan memberikan output sesuai pengaturan lokal negara tersebut. Di sini kita punya bulan jadi tidak akan ada bedanya tapi kalau seminggu atau sehari pasti beda.
Langkah 5) Anda dapat mengambil daftar hari tertentu selama setahun penuh. Misalnya, ada hari audit pada setiap Senin pertama dalam seminggu. Anda ingin mengetahui tanggal Senin pertama setiap bulannya. Anda dapat menggunakan kode ini
mycal =calendar.monthcalendar(2025, month) akan membuat kalender untuk bulan tersebut
Setel variabel minggu1 dan minggu2 ke minggu pertama dan kedua dalam kalender
Periksa apakah Minggu 1 berisi hari Senin, atur hari audit
Jika tidak, tetapkan hari audit sebagai Senin pertama di minggu ke-2
Output menunjukkan tanggal Senin pertama yang jatuh pada bulan tersebut.
Panjang objek Cal ini akan menjadi panjang tertentu, berdasarkan berapa minggu di sana dalam sebulan. Dalam kasus kami, ini akan menjadi satu atau dua karena Senin pertama minggu itu paling sering berada di minggu pertama tetapi jika tidak, pertimbangkan minggu kedua. Mari kita lihat secara detail mengapa kami juga mempertimbangkan minggu kedua.
Di sini kita menggunakan konstanta kalender Senin, objek kalender memberi Anda konstanta yang mewakili hari Minggu, Senin, Selasa, dan seterusnya. Kami telah melihat ini sebelumnya. Jadi, jika dalam minggu pertama hari yang diwakili oleh konstanta Senin tidak sama dengan 0, ingat nol berarti hari-hari milik bulan lain. Jadi, dalam hal ini, jika nol, itu akan menjadi hari Senin yang termasuk dalam bulan sebelumnya. Tetapi jika Senin pertama tidak sama dengan 0, itu berarti hari audit saya akan berada dalam minggu pertama. Kalau tidak, jika itu 0, maka Senin pertama bukan di minggu pertama setiap bulan, pasti di minggu kedua.
Jadi, kalau begitu saya katakan oke, atur variabel hari audit saya menjadi hari Senin yang diwakili oleh Minggu kedua. Jadi, hari audit akan kembali dengan hari apa pun untuk minggu pertama atau kedua.
Ini kode lengkapnya
Contoh Python 2
import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print str
# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print str
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
print i
# The calendar can give info based on local such a names of days and months (full and abbreviated forms)
for name in calendar.month_name:
print name
for day in calendar.day_name:
print day
# calculate days based on a rule: For instance an audit day on the second Monday of every month
# Figure out what days that would be for each month, we can use the script as shown here
for month in range(1, 13):
# It retrieves a list of weeks that represent the month
mycal = calendar.monthcalendar(2025, month)
# The first MONDAY has to be within the first two weeks
week1 = mycal[0]
week2 = mycal[1]
if week1[calendar.MONDAY] != 0:
auditday = week1[calendar.MONDAY]
else:
# if the first MONDAY isn't in the first week, it must be in the second week
auditday = week2[calendar.MONDAY]
print "%10s %2d" % (calendar.month_name[month], auditday)
Contoh Python 3
import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print(str)
# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print(str)
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
print(i)
# The calendar can give info based on local such a names of days and months (full and abbreviated forms)
for name in calendar.month_name:
print(name)
for day in calendar.day_name:
print(day)
# calculate days based on a rule: For instance an audit day on the second Monday of every month
# Figure out what days that would be for each month, we can use the script as shown here
for month in range(1, 13):
# It retrieves a list of weeks that represent the month
mycal = calendar.monthcalendar(2025, month)
# The first MONDAY has to be within the first two weeks
week1 = mycal[0]
week2 = mycal[1]
if week1[calendar.MONDAY] != 0:
auditday = week1[calendar.MONDAY]
else:
# if the first MONDAY isn't in the first week, it must be in the second week
auditday = week2[calendar.MONDAY]
print("%10s %2d" % (calendar.month_name[month], auditday))
Ringkasan:
Dengan Python, Anda dapat memformat kalender seperti yang Anda inginkan karena Anda dapat mengubah hari untuk memulainya
Cetak Kalender dalam format HTML
Ambil data dari sistem lokal, seperti bulan atau hari kerja