Coding for KidsCoding for Kids
Tahap KreatifCabaranPanduan Guru
Undi untuk ciri
Kursus Pembangunan Python Lanjutan
Bab
>
Tahap

Modul String & Masa
Mod Kalender

Objektif

Periksa kalendar dan tetapkan tarikh untuk sesetengah garis masa penghantaran dengan menggunakan modul Kalendar.

Terdapat beberapa penghantaran yang tiba dan jadual waktu yang perlu dipenuhi supaya ia dapat diagihkan mengikut pembinaan ladang baru. Sebelumnya, kami menggunakan modul tarikh untuk menyediakan label penghantaran, di sini kita akan menetapkan jadual menggunakan modul kalendar. Untuk menggunakan kelas dan fungsi modul tersebut, gunakan import calendar untuk mengimport semua bahan berkaitan.

Untuk tujuan kita, kita akan menggunakan fungsi modul kalendar berikut:

  • calendar.calendar(): Memaparkan kalendar penuh untuk tahun, mengambil satu (1) argumen, iaitu tahun yang anda ingin paparkan.
  • calendar.month(): Memaparkan kalendar untuk satu bulan, mengambil dua (2) argumen, iaitu tahun dan bulan.
  • calendar.isleap(): Menyemak jika sesuatu tahun adalah tahun lompat, mengambil satu (1) argumen, iaitu tahun yang hendak disemak.
  • calendar.leapdays(): Menyemak bilangan hari lompat yang terkumpul sepanjang tahun, mengambil dua (2) argumen yang merangkumi tempoh tahun yang ingin disemak.
  • itermonthdays(): Menggunakan kelas Calendar(), melangkah melalui semua hari dalam bulan, mengambil dua argumen, iaitu tahun dan bulan.
  • itermonthdates(): Menggunakan kelas Calendar(), melangkah melalui semua tarikh dalam bulan, mengambil dua argumen, iaitu tahun dan bulan.
  • monthdayscalendar(): Menggunakan kelas Calendar(), melangkah melalui semua minggu dalam bulan, mengambil dua argumen, iaitu tahun dan bulan. Menyimpan data dalam senarai bersarang.
  • monthdays2calendar(): Sama seperti fungsi sebelumnya tetapi menyimpan minggu dan hari bersama dalam senarai dua dimensi.

Untuk memulakan, berjalan ke tanda X emas dan periksa kalendar, buat pembolehubah bernama cal dan simpan nilai calendar.calendar() serta tambah tahun 2026 sebagai argumen, seperti ini: cal = calendar.calendar(2026). Gunakan fungsi display() untuk memaparkan pembolehubah cal yang baru anda sediakan.

Selepas memeriksa dan memaparkan kalendar, pergi ke tanda X yang ringan dan periksa helaian di atas meja. Gunakan fungsi read() untuk menyemak memo bagi jadual tarikh bulan bekalan. Buat dua pembolehubah, satu dinamakan year dan satu lagi month serta isikan mereka dengan maklumat yang anda baca.

Buat pembolehubah bernama calendar_month dan simpan nilai fungsi calendar.month() menggunakan pembolehubah year dan month sebagai argumen. Gunakan fungsi display() untuk memaparkan bulan kalendar yang akan digunakan untuk menetapkan jadual pengagihan.

Berjalan ke tanda X yang gelap di atas permaidani hijau, di sini kita akan menulis beberapa titik data untuk memastikan jadual tidak terganggu. Buat dua pembolehubah, satu dinamakan leap_year dan satu lagi leap_days. Untuk pembolehubah leap_year, simpan hasil calendar.isleap() dengan menetapkan 2026 sebagai argumen. Ini akan membolehkan anda mengesahkan jika tahun projek semasa adalah tahun lompat. Untuk pembolehubah leap_days, simpan nilai calendar.leapdays() dan masukkan nilai: 2020 dan 2027 sebagai argumen. Ini mengesahkan jumlah hari lompat yang telah berlaku sepanjang tempoh projek. Gunakan fungsi write() yang telah disediakan untuk menulis data leap_year dan leap_days.

Berjalan ke tanda X yang gelap di atas permaidani merah dan hadapkan diri ke meja, di sini kita akan menyusun jadual bulan. Buat pembolehubah bernama date dan simpan nilai calendar.Calendar(), ini akan mencipta objek kelas yang boleh kita rujuk kemudian. Buat satu lagi pembolehubah bernama day_roster dan isikan dengan rentetan kosong, ini akan membolehkan kita menyimpan senarai hari dalam bentuk rentetan. Contohnya: day_roster = "".

Terdapat satu for loop yang telah disediakan dalam editor yang melangkah melalui kalendar dan menyusun tarikh. Gunakan fungsi itermonthdays() dan masukkan pembolehubah year dan month yang telah anda cipta sebagai argumen. Tambah elemen yang hilang mengikut keperluan untuk menjumlahkan rekod senarai hari.

for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry

Setelah loop tersebut disediakan, teruskan dengan mencipta pendua bagi loop ini namun gantikan fungsi itermonthdays() dengan itermonthdates() dan masukkan pembolehubah year dan month sebagai argumen. Untuk pembolehubah entry, rekod data seperti berikut: entry = "%s \n" % (day). Ini akan memberikan kita tarikh penuh bagi tempoh projek. Gunakan fungsi display() yang telah disediakan bersama pembolehubah day_roster untuk memaparkan senarai penuh hari projek dalam kalendar.

Berjalan ke tanda X yang gelap di atas permaidani biru dan hadapkan diri ke memo, di sini kita akan menyediakan katalog minggu kerja susulan projek yang disusun dalam senarai. Buat pembolehubah bernama weeks dan simpan nilai calendar.Calendar(), ini akan mencipta objek kelas yang boleh kita rujuk dengan fungsi-fungsi. Tukar nilai pembolehubah month kepada 7 untuk melangkah ke atas jadual yang sedang kita usahakan, contohnya: month = 7.

Buat pembolehubah bernama week_roster dan isikan dengan rentetan kosong, ini akan membolehkan kita menyimpan senarai minggu dalam bentuk rentetan. Contohnya: week_roster = "". Terdapat satu for loop yang telah disediakan dalam editor yang melangkah melalui kalendar dan menyusun hari-hari bekerja. Gunakan fungsi monthdayscalendar() dan masukkan pembolehubah year dan month yang telah anda cipta sebagai argumen. Tambah elemen yang diperlukan mengikut keperluan untuk menjumlahkan rekod senarai minggu.

for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry

Setelah loop tersebut disediakan, teruskan dengan mencipta pendua bagi loop ini namun gantikan fungsi monthdayscalendar() dengan monthdays2calendar() dan masukkan pembolehubah year dan month sebagai argumen. Ini akan memberikan kita tarikh penuh bagi tempoh projek. Gunakan fungsi display() yang telah disediakan bersama pembolehubah week_roster untuk memaparkan senarai penuh hari bekerja projek dalam kalendar bagi melengkapkan tahap ini.

Buku Kod