Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat
Modul String & Waktu
Modul Tanggal/Waktu
Tujuan
Menyesuaikan catatan dan mengatur tanggal pengiriman untuk perlengkapan menggunakan fungsi modul Tanggal & Waktu.
Lantai bawah dari anak bangunan di area konstruksi baru adalah sebuah gudang yang berisi beberapa perlengkapan yang baru saja dikirim, telah dikemas dan siap untuk dikirim ke area sekitar konstruksi baru. Perlengkapan tersebut perlu diberi label dengan tanggal dan waktu yang benar, serta memastikan bahwa label yang sudah ditempelkan memuat semua informasi yang relevan. Untuk melakukan ini, kita bisa meluangkan waktu untuk menulis dan memformat tanggal serta waktu secara manual, namun ada cara yang jauh lebih cepat dengan menggunakan modul tanggal dan waktu.
Modul tanggal dan waktu diimpor dengan menulis import datetime, ini membuka serangkaian fungsi kuat yang memungkinkan Anda membaca dan mengatur waktu serta tanggal yang terformat yang dapat disimpan dalam objek. Anda juga dapat menggunakan: from datetime import timezone, timedelta untuk mengatur zona waktu. Fungsi-fungsi berikut dapat digunakan setelah mengimpor modul:
datetime.datetime(): Memungkinkan Anda mengatur dan menyimpan waktu sesuai pilihan, membutuhkan beberapa argumen sebagai berikut:year,month,day,hour,minute,second,microsecond,timezone. Anda tidak harus memasukkan semua argumen, cukup yang ingin Anda gunakan.datetime.datetime.now(): Mengembalikan tanggal dan waktu saat ini seperti yang terlihat pada jam.datetime.datetime.date(): Mengembalikan hanya tanggal dari datetime, tanpa waktu.datetime.datetime.time(): Mengembalikan hanya waktu dari datetime, tanpa tanggal.datetime.datetime.timestamp(): Mengembalikan timestamp datetime sebagai kode UNIX.timezone(): Memungkinkan Anda mengatur zona waktu untuk digunakan bersama argumen tanggal dan waktu Anda.datetime.strftime(): Memungkinkan Anda mengekstrak informasi spesifik dari tanggal dan waktu serta memformatnya sesuai keinginan menggunakan kode-kode tertentu. Untuk keperluan kita, kita akan menggunakan kode-kode berikut:"%a": Hari dalam seminggu, disingkat"%d": Tanggal dalam sebulan"%B": Nama bulan, ditulis lengkap"%I": Jam, siklus dua belas jam"%M": Menit"%p": Meridian, AM/PM"%x": Format tanggal lokal"%X": Format waktu lokal"%j": Hari dalam setahun"%U": Pekan dalam setahun"%z": Zona waktu UTC
Untuk memulai, berjalanlah ke tanda X yang berwarna terang dan hadaplah ke meja, gunakan fungsi read() untuk memeriksa tanggal pengemasan untuk pengiriman serta tanggal mulai dan berakhir untuk proyek-proyek tersebut. Catat tanggal mulai dan berakhir yang tertera dalam dokumen (bulan/hari/tahun). Tiga (3) data pertama yang tertulis dalam memo serta zona waktu telah ditulis sebelumnya di editor kode untuk mempermudah penggunaan pada fungsi selanjutnya.
Di area yang sama, buatlah variabel bernama today dan simpan nilai return dari datetime.datetime.now(). Gunakan str() untuk mengonversi nilainya menjadi string agar mudah dibaca, seperti ini: today = str(datetime.datetime.now()). Gunakan fungsi display() untuk menuliskan tanggal hari ini pada memo, dengan ini tanggal untuk alokasi pengiriman telah ditetapkan dan Anda dapat mulai menambahkan data yang hilang pada area yang diperlukan.
Berjalanlah ke tanda X yang berwarna emas di samping meja dan di sini kita akan menghitung serta mencatat jumlah hari yang dibutuhkan proyek ini. Terdapat dua variabel di editor yang bernama start dan end yang menyimpan datetime. Tulislah tanggal mulai dan berakhir yang sebelumnya Anda baca ke dalam ruang yang telah disediakan. Buatlah variabel bernama result dan simpan hasil pengurangan antara variabel end dan start. Gunakan fungsi str() untuk mengonversi nilainya menjadi format string yang mudah dibaca, seperti ini: result = str(end-start). Gunakan fungsi write() untuk mencatat variabel result, sebagai tanda berapa lama waktu yang dibutuhkan.
Dari sini kita akan berpindah ke tanda X yang berwarna emas di samping karpet merah dan akan bergerak ke bawah menuju tanda X di samping peti karpet merah di kolom sebelah kiri. Di sini kita akan menambahkan bagian-bagian spesifik dari tanggal pengemasan yang hilang pada peti menggunakan datetime(). Di editor akan ada tanggal yang telah ditulis sebelumnya yang dialokasikan ke variabel red_date, kita akan mengekstrak berbagai bagian data dan menggunakannya untuk memberi label pada peti.
Untuk karpet merah:
-
Pada tanda X yang berwarna emas, hadapilah peti dan buatlah variabel bernama
red_daysyang menyimpan tanggal tanpa waktu menggunakandate()dari variabelred_datedan, ubah denganstr(), seperti ini:red_days = str(red_date.date()). Gunakan fungsiwrite()untuk memberi label pada peti menggunakanred_days. -
Pada tanda X yang berwarna terang, hadapilah peti dan buatlah variabel bernama
red_timeyang menyimpan waktu tanpa tanggal menggunakantime()dari variabelred_datedan ubah denganstr(), seperti ini:red_time = str(red_date.time()). Gunakan fungsiwrite()untuk memberi label pada peti menggunakanred_time. -
Pada tanda X yang berwarna gelap, hadapilah peti dan buatlah variabel bernama
red_timestampyang menyimpan timestamp yang dihitung dari variabelred_date, seperti ini:red_timestamp = red_date.timestamp(). Gunakan fungsiwrite()untuk memberi label pada peti menggunakanred_timestamp.
Lanjutkan dengan berpindah ke tanda X di depan peti karpet biru. Seperti sebelumnya, terdapat serangkaian tiga (3) tanda X berwarna, dalam hal ini merujuk pada variabel blue_date yang telah ditulis sebelumnya untuk melengkapi label. Telusuri kolom tersebut dan gunakan fungsi strftime() untuk menambahkan elemen yang hilang pada label pengiriman. Berbeda dengan fungsi sebelumnya, fungsi ini memerlukan kode spesifik untuk mengekstrak dan memformat elemen pada tanggal target. Misalnya, jika kita ingin mendapatkan hari dalam seminggu untuk variabel blue_date, Anda akan menggunakan kode "%a" dengan fungsi strftime() seperti ini: blue_date.strftime("%a").
Untuk tanda X di samping peti karpet biru, gunakan fungsi strftime() dengan kode spesifik yang diperlukan. Perhatikan daftar kode yang telah dijelaskan sebelumnya sesuai dengan kebutuhan. Untuk karpet biru:
-
Pada tanda X yang berwarna emas, hadapilah peti dan buatlah variabel bernama
blue_weekdayyang menyimpan hari dalam seminggu menggunakanstrftime()dari variabelblue_dateseperti ini:blue_day = blue_date.strftime("%a"). Buat variabel lain bernamablue_daydan simpan tanggal dalam sebulan menggunakanstrftime()dari variabelblue_date. Buat variabel lain bernamablue_monthdan simpan nama bulan, ditulis lengkap, menggunakanstrftime()dari variabelblue_date. Masukkan variabelblue_weekday,blue_daydanblue_monthke dalam fungsiwrite()yang telah ditulis sebelumnya. -
Pada tanda X yang berwarna terang, hadapilah peti dan buatlah variabel bernama
blue_houryang menyimpan jam, siklus dua belas jam, menggunakanstrftime()dari variabelblue_date. Buat variabel lain bernamablue_minutedan simpan menit menggunakanstrftime()dari variabelblue_date. Buat variabel lain bernamablue_meridiandan simpan Meridian, AM/PM, menggunakanstrftime()dari variabelblue_date. Masukkan variabelblue_hour,blue_minutedanblue_meridianke dalam fungsiwrite()yang telah ditulis sebelumnya. -
Pada tanda X yang berwarna gelap, hadapilah peti dan buatlah variabel bernama
blue_local_dateyang menyimpan format tanggal lokal, menggunakanstrftime()dari variabelblue_date. Buat variabel lain bernamablue_local_timedan simpan format waktu lokal menggunakanstrftime()dari variabelblue_date. Masukkan variabelblue_local_date,blue_local_timedanblue_meridianke dalam fungsidisplay()yang telah ditulis sebelumnya.
Akhirnya, kita akan berpindah ke tanda X yang berwarna emas di samping karpet hijau dan akan bergerak ke bawah menuju tanda X di samping peti karpet hijau di kolom sebelah kanan. Di sini kita akan melanjutkan menambahkan bagian spesifik dari tanggal pengemasan yang hilang pada peti menggunakan strftime(). Di editor akan ada tanggal yang telah ditulis sebelumnya yang dialokasikan ke variabel green_date, kita akan mengekstrak berbagai bagian data dan menggunakannya untuk memberi label pada peti.
Untuk karpet hijau:
-
Pada tanda X yang berwarna emas, hadapilah peti dan buatlah variabel bernama
green_dayyang menyimpan hari dalam setahun menggunakanstrftime()dari variabelgreen_date. Gunakan fungsiwrite()untuk memberi label pada peti menggunakangreen_day. -
Pada tanda X yang berwarna terang, hadapilah peti dan buatlah variabel bernama
green_weekyang menyimpan pekan dalam setahun menggunakanstrftime()dari variabelgreen_date. Gunakan fungsiwrite()untuk memberi label pada peti menggunakangreen_week. -
Pada tanda X yang berwarna gelap, hadapilah peti dan buatlah variabel bernama
green_timezoneyang menyimpan zona waktu UTC menggunakanstrftime()dari variabelgreen_date. Gunakan fungsiwrite()untuk memberi label pada peti menggunakangreen_timezone.
Setelah semua label pada tanda X di samping karpet berwarna telah dicatat, level ini akan selesai.