Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya mengira selang masa dan tempoh purata antara rentetan masa dalam Python?

Bagaimanakah saya mengira selang masa dan tempoh purata antara rentetan masa dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-11-30 16:43:11606semak imbas

How do I calculate time intervals and average durations between time strings in Python?

Mengira Selang Masa Antara Rentetan Masa

Menentukan perbezaan masa antara dua rentetan masa dalam Python boleh menjadi tugas yang mudah dengan bantuan modul datetime. Mari kita terokai cara untuk mencapai ini dan menangani keperluan tambahan untuk mengira purata.

Untuk menghuraikan rentetan masa ke dalam objek datetime, kita boleh menggunakan kaedah datetime.strptime(). Pertimbangkan contoh berikut:

from datetime import datetime

start_time = "10:33:26"
end_time = "11:15:49"
FMT = '%H:%M:%S'

# Parse time strings into datetime objects
start_dt = datetime.strptime(start_time, FMT)
end_dt = datetime.strptime(end_time, FMT)

Hasilnya ialah dua objek datetime, start_dt dan end_dt, yang mewakili masa mula dan tamat.

Mengira Selang Masa

Untuk mengira selang masa antara dua masa, tolak start_dt daripada end_dt:

time_interval = end_dt - start_dt

time_interval akan menjadi objek timedelta yang mengandungi perbezaan antara dua masa. Anda boleh mengakses nilai tempoh dalam jam, minit dan saat menggunakan atribut jam, minit dan saat, masing-masing.

Mengira Purata Tempoh

Untuk mengira purata tempoh daripada berbilang selang masa, anda boleh menukarnya kepada saat dan kemudian mengambil purata:

# Convert the time interval to seconds
interval_seconds = time_interval.total_seconds()

# Store the converted seconds in a list
seconds_list.append(interval_seconds)

# Calculate the average duration
average_seconds = sum(seconds_list) / len(seconds_list)

Mengendalikan Keputusan Negatif

Jika masa tamat berlaku sebelum masa mula, selang_masa akan menjadi negatif. Untuk mengendalikan kes ini, anda boleh menetapkan hari secara manual kepada sifar, dengan mengandaikan selang waktu melintasi tengah malam:

if time_interval.days < 0:
    time_interval = timedelta(
        days=0,
        seconds=time_interval.seconds,
        microseconds=time_interval.microseconds
    )

Atas ialah kandungan terperinci Bagaimanakah saya mengira selang masa dan tempoh purata antara rentetan masa dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn