Cara Menghitung Selisih Waktu dengan Python
Diterbitkan: 2022-01-23Saat bekerja dengan tanggal dan waktu di Python, Anda sering harus menghitung perbedaan waktu. Dalam tutorial ini, Anda akan belajar bagaimana menghitung perbedaan antara dua cap waktu dalam jam, menit, dan detik.
Pada akhir tutorial ini, Anda akan belajar:
- cara menggunakan modul
datetimePython untuk bekerja dengan tanggal dan waktu, - apa itu objek
timedelta, dan kegunaannya, dan - hitung perbedaan waktu antara dua stempel waktu—dalam jam, menit, dan detik.
Mari kita mulai.
Cara menggunakan modul datetime Python
Untuk bekerja dengan tanggal dan waktu di Python, Anda akan menggunakan modul datetime . Modul datetime adalah bagian dari pustaka standar Python. Jadi Anda dapat langsung mengimpornya ke lingkungan kerja Anda, seperti ini:
import datetimeUntuk menghitung perbedaan waktu, Anda perlu membuat dua stempel waktu yang berbeda. Anda dapat memilih untuk membuat:
- dua objek
date, - dua benda
time, atau - kombinasi
datedantime— objekdatetime.
Cara membuat objek tanggal dengan Python
Mari impor kelas date dari modul datetime. Untuk membuat objek tanggal dengan Python, Anda dapat menggunakan sintaks umum datetime.date(<year>,<month>,<day>) . Berikut ini contoh membuat objek date date1 :
from datetime import date date1 = datetime.date(2022,3,27) print(date1) # Output: 2022-03-27Anda dapat mencoba kode pada kompiler Geekflare Python untuk menguji. Atau, instal Python di komputer Anda.
Seperti yang ditunjukkan di atas, saat Anda mencetak tanggal, formatnya adalah YYYY-MM-DD untuk tanggal.
Catatan : Pastikan untuk menentukan bulan sebagai bilangan bulat tanpa nol di depan. Sepertinya Anda terbiasa menambahkan nol di depan bulan saat menuliskan tanggal.
Misalnya, untuk menentukan tanggal di bulan Juni, bulan ke-6 dalam setahun: gunakan 6 dan bukan 06.
Misalnya, coba jalankan cuplikan kode berikut—di mana bulan telah disebutkan sebagai 03 , bukan hanya 3 . Anda akan melihat bahwa itu melempar Kesalahan Sintaks seperti yang ditunjukkan:
date1 = datetime.date(2022,03,27) print(date1) # Error Message File "<ipython-input-12-6eb72084e6ce>", line 1 date1 = datetime.date(2022,03,27) ^ SyntaxError: invalid token Sekarang mari kita lihat cara membuat objek time dengan Python.
Cara membuat objek waktu dengan Python
Untuk membuat objek waktu, mari impor kelas time . Setiap objek waktu Python dapat dibuat menggunakan kelas time dengan menentukan atribut kelas berikut: hour , minute , second , dan microsecond .
Namun, semua atribut ini opsional. Jika Anda tidak menentukan atribut tertentu, katakanlah, second , itu disetel ke 0 secara default.
Cuplikan kode berikut menunjukkan bagaimana Anda dapat membuat objek waktu time1 . Seperti objek date , Anda dapat mencetak objek time untuk melihat waktu yang diformat.
from datetime import time time1 = datetime.time(13,27,45,4600) print(time1) # Output: 13:27:45.004600Cara membuat objek datetime dengan Python
Seperti yang Anda lihat, objek date tidak memiliki informasi tentang waktu. Dan objek time tidak berisi informasi tentang tanggal.
Namun, dalam praktiknya, Anda memerlukan informasi tanggal dan waktu. Jadi disarankan untuk menggunakan kelas datetime sebagai gantinya.
Anda dapat mengakses kelas datetime dan membuat objek datetime dengan Python, seperti yang ditunjukkan di bawah ini:
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) print(dt1) # Output: 2022-03-27 13:27:45.046000 Sekarang mari kita buat objek datetime lain dt2 tanpa atribut second . Anda dapat melihat bahwa itu disetel ke 0 – nilai default.
dt2 = datetime.datetime(2022,6,30,14,28) print(dt2) # Output: 2022-06-30 14:28:00Sejauh ini Anda telah mempelajari cara membuat stempel waktu dengan Python—sebagai tanggal, waktu, dan waktu. Sekarang saatnya untuk melihat bagaimana Anda dapat menghitung perbedaan antara dua cap waktu.
Kepala ke bagian berikutnya untuk mencari tahu.
Cara menggunakan objek timedelta dengan Python
Dalam Python, timedelta menunjukkan rentang waktu. Ini adalah perbedaan antara dua objek date , time , atau datetime .
Jika Anda menambah atau mengurangi dua objek date , time , atau datetime , Anda akan mendapatkan objek timedelta . Objek timedelta ini memiliki atribut dan metode yang berguna yang dapat membantu menghitung perbedaan waktu.
Mari kita lanjutkan dan hitung perbedaan antara dua objek datetime dt1 dan dt2 .
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) dt2 = datetime.datetime(2022,6,30,14,28) tdelta = dt2 - dt1 print(tdelta) print(type(tdelta)) # Output 95 days, 1:00:14.954000 <class 'datetime.timedelta'> Dari cuplikan kode di atas, Anda dapat melihat bahwa variabel tdelta menyimpan perbedaan waktu antara dt1 dan dt2 . Dan tipe tdelta diverifikasi sebagai class timedelta menggunakan fungsi type() bawaan Python.

Sekarang mari kita mengkodekan contoh lain.
Bagaimana menemukan perbedaan waktu antara dua tanggal
Mari kita ambil contoh sederhana namun menarik.
Soal : Untuk menghitung selisih waktu antara tanggal sekarang (hari ini) dan hari ulang tahun Anda.
Untuk melakukannya, tetapkan hari ini sebagai stempel waktu pertama, dan ulang tahun Anda sebagai stempel waktu kedua.
Sebagai langkah pertama, mari buat dua objek datetime :
- satu untuk hari ini, sebut saja
today, dan - satu lagi untuk ulang tahunmu, sebut saja
bday
Kelas datetime memiliki metode now() yang memberi Anda tanggal dan waktu lokal saat ini. Jadi mari kita gunakan today —tanggal referensi kita.
today = datetime.datetime.now() print(today) # Sample Output: 2022-01-22 09:10:18.489538 Pada kode di bawah ini, ganti bday dengan hari ulang tahun Anda untuk menghitung waktu yang tersisa untuk ulang tahun Anda tahun ini.
Jika Anda membaca ini setelah ulang tahun Anda berlalu, jangan ragu untuk mengatur bday tahun ke hari ulang tahun Anda berikutnya.
bday = datetime.datetime(2022,8,30,11,59) print(bday) # Sample Output: 2022-08-30 11:59:00 Langkah selanjutnya adalah menghitung time_diff yang merupakan objek timedleta , seperti yang telah dijelaskan sebelumnya. Cukup kurangi today dari bday Anda, dan Anda akan memiliki perbedaan waktu.
time_diff = bday - today print(f"Your birthday is in {time_diff}") # Output Your birthday is in 220 days, 2:46:00.127416 Untuk mengetahui jumlah hari yang tersisa, gunakan atribut days pada time_diff , seperti yang ditunjukkan:
tdays = time_diff.days print(f"Your birthday is in {tdays} days.") # Output Your birthday is in 220 days.Bagaimana menemukan perbedaan waktu dalam detik
Sekarang mari kita hitung berapa detik lagi ulang tahun Anda.
Untuk menghitung perbedaan waktu total dalam detik, gunakan metode total_seconds() pada objek timedelta time_diff .
tsecs = time_diff.total_seconds() print(f"Your birthday is {tsecs} seconds away.") # Output Your birthday is 19017960.127416 seconds away.Yah, itu terlalu lama menunggu!
Karena itu, Anda sekarang tahu cara menghitung perbedaan waktu antara dua stempel waktu mana pun dalam hitungan detik.
Sekarang mari kita tinjau kembali beberapa dasar dan tuliskan yang berikut ini. Satu hari terdiri dari 24 jam, satu jam terdiri dari 60 menit, dan 60 detik terdiri dari satu menit.
Ini diringkas dalam gambar di bawah ini:

Jadi untuk mengonversi dari detik ke menit, jam, dan hari, Anda dapat menggunakan tabel berikut, dan membaginya dengan faktor konversi yang sesuai.

Di bagian selanjutnya, mari kita ubah perbedaan waktu dalam detik menjadi menit dan jam.
Bagaimana menemukan perbedaan waktu dalam menit
Untuk mendapatkan selisih waktu dalam menit, Anda hanya perlu membagi total detik dengan 60.
Mari kita bagi tsecs dengan 60, dan simpan dalam variabel yang disebut tmins , seperti ini:
tmins = tsecs/60 print(f"Your birthday is {tmins} minutes away.") # Output Your birthday is 316966.0021236 minutes away.Bagaimana menemukan perbedaan waktu dalam jam
Sekarang setelah Anda menghitung perbedaan waktu dalam menit, Anda dapat membaginya dengan faktor 60 untuk mendapatkan perbedaan dalam jam. Atau Anda dapat membagi total detik dengan 60*60 = 3600.
thrs = tsecs/(60*60) print(f"Your birthday is {thrs} hours away.") # Output Your birthday is 5282.76670206 hours away.Jadi, sekarang Anda telah mempelajari cara menghitung perbedaan waktu dalam satuan apa pun yang Anda pilih.
Kesimpulan
Dalam tutorial ini, Anda telah belajar bagaimana:
- buat dan bekerja dengan tanggal dan waktu menggunakan modul
datetimePython, - menggunakan objek
timedeltauntuk mendapatkan rentang waktu, atau perbedaan waktu, dan - menghitung selisih waktu dalam detik, menit, dan jam.
Semoga tutorial ini bermanfaat bagi Anda. Sekarang setelah Anda mengetahui semua tentang menghitung perbedaan waktu dengan Python, saatnya untuk mempraktikkan keterampilan Anda.
Selamat belajar dan coding!
Pelajari cara menulis sama dengan atau tidak sama dengan kode atau membuat permainan ular dengan python di sini.
