Kursus Pembangunan Python Lanjutan
Bab
>
Tahap
Modul String & Masa
Modul Tarikh/Masa
Objektif
Sesuaikan rekod dan tetapkan tarikh penghantaran untuk bekalan menggunakan fungsi modul Tarikh & Masa.
Lantai bawah ruang tambahan bagi kawasan pembinaan baru adalah sebuah gudang yang mengandungi beberapa bekalan yang baru sahaja dihantar, yang telah dibungkus dan sedia untuk dihantar ke kawasan sekitar pembinaan baru. Bekalan tersebut perlu dilabelkan dengan tarikh dan masa yang betul, serta memastikan bahawa sebarang label yang telah digunakan mempunyai semua maklumat yang relevan. Untuk melakukan ini, kita boleh meluangkan masa untuk menulis dan memformat tarikh dan masa secara manual, tetapi terdapat cara yang jauh lebih cepat untuk melakukannya menggunakan modul tarikh dan masa.
Modul tarikh dan masa diimport dengan menulis import datetime, ini membuka satu siri fungsi berkuasa yang membolehkan anda membaca dan menetapkan masa dan tarikh yang diformatkan yang boleh anda simpan dalam objek. Anda juga boleh menggunakan: from datetime import timezone, timedelta untuk menetapkan zon masa. Fungsi-fungsi berikut dibuka dengan mengimport modul ini:
datetime.datetime(): Membolehkan anda menetapkan dan menyimpan masa pilihan anda, menerima beberapa hujah seperti berikut:year,month,day,hour,minute,second,microsecond,timezone. Anda tidak perlu memasukkan semua hujah, tetapi hanya yang anda ingin gunakan.datetime.datetime.now(): Mengembalikan tarikh dan masa semasa anda seperti yang terpampang pada jam.datetime.datetime.date(): Mengembalikan hanya tarikh datetime, tanpa masa.datetime.datetime.time(): Mengembalikan hanya masa datetime, tanpa tarikh.datetime.datetime.timestamp(): Mengembalikan cap waktu datetime sebagai kod UNIX.timezone(): Membolehkan anda menetapkan zon masa untuk digunakan dengan hujah tarikh dan masa anda.datetime.strftime(): Membolehkan anda mengekstrak maklumat spesifik tarikh dan masa dan memformatnya mengikut keinginan anda menggunakan kod-kod tertentu. Untuk tujuan kita, kita akan menggunakan kod-kod berikut:"%a": Hari dalam seminggu, disingkat"%d": Hari dalam bulan"%B": Nama bulan, ditulis penuh"%I": Jam, kitaran dua belas jam"%M": Minit"%p": Meridian, AM/PM"%x": Format tarikh tempatan"%X": Format masa tempatan"%j": Hari dalam setahun"%U": Minggu dalam setahun"%z": Zon masa UTC
Untuk memulakan, pergi ke tanda X ringan dan hadapkan kepada meja, gunakan fungsi read() untuk menyemak tarikh pembungkusan untuk penghantaran serta tarikh mula dan tamat untuk projek. Catat tarikh mula dan tamat yang disediakan dalam dokumen (bulan/hari/tahun). Tiga (3) titik data pertama yang ditulis dalam memo serta zon masa telah ditulis terlebih dahulu dalam editor kod untuk memudahkan penggunaan dalam fungsi-fungsi kemudian.
Dalam ruang yang sama ini, buat satu pembolehubah bernama today dan simpan nilai pulangan daripada datetime.datetime.now(). Gunakan str() untuk menukar nilai tersebut kepada rentetan supaya boleh dibaca, seperti ini: today = str(datetime.datetime.now()). Gunakan fungsi display() untuk mencatat tarikh hari ini dalam memo, dengan ini tarikh untuk peruntukan penghantaran telah ditetapkan dan anda boleh mula menambah titik data yang hilang ke kawasan-kawasan yang diperlukan.
Pergi ke tanda X emas di sebelah meja dan di sini kita akan mengira dan mencatatkan bilangan hari yang diperlukan untuk projek ini. Terdapat dua pembolehubah yang ditulis dalam editor bernama start dan end yang menyimpan datetime. Catatkan tarikh mula dan tamat yang anda baca sebelum ini ke dalam ruang yang disediakan. Buat satu pembolehubah bernama result dan simpan hasil tolak antara pembolehubah end dan start. Gunakan fungsi str() untuk menukar nilai tersebut kepada format rentetan yang boleh dibaca, seperti ini: result = str(end-start). Gunakan fungsi write() untuk mencatatkan pembolehubah result, bagi menandakan berapa lamakah proses ini mengambil masa.
Daripada sini, kita akan bergerak ke tanda X emas di sebelah karpet merah dan akan bergerak ke bawah ke tanda X di sebelah peti karpet merah pada lajur sebelah kiri. Di sini kita akan menambah bahagian-bahagian tertentu daripada tarikh pembungkusan yang hilang dari peti menggunakan datetime(). Dalam editor, akan terdapat tarikh yang telah ditulis terlebih dahulu yang dialokasikan kepada pembolehubah red_date, kita akan mengekstrak pelbagai bahagian data dan menggunakannya untuk melabel peti.
Untuk karpet merah:
-
Pada tanda X emas, hadapkan peti dan buat pembolehubah bernama
red_dayssimpan di dalamnya tarikh tanpa masa menggunakandate()daripada pembolehubahred_datedan, tukarkan menggunakanstr(), seperti ini:red_days = str(red_date.date()). Gunakan fungsiwrite()untuk melabel peti menggunakanred_days. -
Pada tanda X ringan, hadapkan peti dan buat pembolehubah bernama
red_timesimpan di dalamnya masa tanpa tarikh menggunakantime()daripada pembolehubahred_datedan tukarkan menggunakanstr(), seperti ini:red_time = str(red_date.time()). Gunakan fungsiwrite()untuk melabel peti menggunakanred_time. -
Pada tanda X gelap, hadapkan peti dan buat pembolehubah bernama
red_timestampsimpan di dalamnya cap waktu yang dikira daripada pembolehubahred_date, seperti ini:red_timestamp = red_date.timestamp(). Gunakan fungsiwrite()untuk melabel peti menggunakanred_timestamp.
Seterusnya, bergerak kepada tanda X di hadapan peti karpet biru. Seperti sebelumnya terdapat siri tiga (3) tanda X berwarna, dalam kes ini merujuk kepada pembolehubah blue_date yang telah ditulis terlebih dahulu untuk melengkapkan label. Jalani lajur tersebut dan gunakan fungsi strftime() untuk menambah elemen-elemen yang hilang pada label penghantaran. Tidak seperti fungsi-fungsi sebelumnya, fungsi ini memerlukan kod khusus untuk mengekstrak dan memformat elemen dalam tarikh sasaran. Sebagai contoh, jika kita ingin mendapatkan hari dalam minggu untuk pembolehubah blue_date, anda akan menggunakan kod "%a" dengan fungsi strftime() seperti ini: blue_date.strftime("%a").
Untuk tanda X di sebelah peti karpet biru, gunakan fungsi strftime() dengan kod khusus yang diperlukan. Lihat pada senarai kod yang telah diterangkan sebelum ini bergantung pada keperluan. Untuk karpet biru:
-
Pada tanda X emas, hadapkan peti dan buat pembolehubah bernama
blue_weekdaysimpan di dalamnya hari dalam minggu menggunakanstrftime()daripada pembolehubahblue_dateseperti ini:blue_day = blue_date.strftime("%a"). Buat pembolehubah lain bernamablue_daydan simpan hari dalam bulan menggunakanstrftime()daripada pembolehubahblue_date. Buat pembolehubah lain bernamablue_monthdan simpan nama bulan, ditulis penuh, menggunakanstrftime()daripada pembolehubahblue_date. Sisipkan pembolehubahblue_weekday,blue_daydanblue_monthdalam fungsiwrite()yang telah ditulis terlebih dahulu. -
Pada tanda X ringan, hadapkan peti dan buat pembolehubah bernama
blue_hoursimpan di dalamnya jam, kitaran dua belas jam, menggunakanstrftime()daripada pembolehubahblue_date. Buat pembolehubah lain bernamablue_minutedan simpan minit menggunakanstrftime()daripada pembolehubahblue_date. Buat pembolehubah lain bernamablue_meridiandan simpan Meridian, AM/PM, menggunakanstrftime()daripada pembolehubahblue_date. Sisipkan pembolehubahblue_hour,blue_minutedanblue_meridiandalam fungsiwrite()yang telah ditulis terlebih dahulu. -
Pada tanda X gelap, hadapkan peti dan buat pembolehubah bernama
blue_local_datesimpan di dalamnya format tarikh tempatan, menggunakanstrftime()daripada pembolehubahblue_date. Buat pembolehubah lain bernamablue_local_timedan simpan di dalamnya format masa tempatan menggunakanstrftime()daripada pembolehubahblue_date. Sisipkan pembolehubahblue_local_date,blue_local_timedanblue_meridiandalam fungsidisplay()yang telah ditulis terlebih dahulu.
Akhirnya, kita akan bergerak ke tanda X emas di sebelah karpet hijau dan akan bergerak ke bawah ke tanda X di sebelah peti karpet hijau pada lajur sebelah kanan. Di sini kita akan terus menambah bahagian-bahagian tertentu daripada tarikh pembungkusan yang hilang dari peti menggunakan strftime(). Dalam editor, akan terdapat tarikh yang telah ditulis terlebih dahulu yang dialokasikan kepada pembolehubah green_date, kita akan mengekstrak pelbagai bahagian data dan menggunakannya untuk melabel peti.
Untuk karpet hijau:
-
Pada tanda X emas, hadapkan peti dan buat pembolehubah bernama
green_daysimpan di dalamnya hari dalam setahun menggunakanstrftime()daripada pembolehubahgreen_date. Gunakan fungsiwrite()untuk melabel peti menggunakangreen_day. -
Pada tanda X ringan, hadapkan peti dan buat pembolehubah bernama
green_weeksimpan di dalamnya minggu dalam setahun menggunakanstrftime()daripada pembolehubahgreen_date. Gunakan fungsiwrite()untuk melabel peti menggunakangreen_week. -
Pada tanda X gelap, hadapkan peti dan buat pembolehubah bernama
green_timezonesimpan di dalamnya zon masa UTC menggunakanstrftime()daripada pembolehubahgreen_date. Gunakan fungsiwrite()untuk melabel peti menggunakangreen_timezone.
Setelah semua label pada tanda X di sebelah karpet berwarna telah dicatatkan, tahap ini akan diselesaikan.