Python'da Zaman Farkı Nasıl Hesaplanır
Yayınlanan: 2022-01-23Python'da tarih ve saatlerle çalışırken, genellikle zaman farkını hesaplamanız gerekir. Bu öğreticide, iki zaman damgası arasındaki farkı saat, dakika ve saniye cinsinden nasıl hesaplayacağınızı öğreneceksiniz.
Bu eğitimin sonunda şunları öğrenmiş olacaksınız:
- tarih ve saatle çalışmak için Python'un
datetime
modülünün nasıl kullanılacağı, -
timedelta
nesnelerinin ne olduğu ve nasıl yararlı oldukları ve - herhangi iki zaman damgası arasındaki zaman farkını saat, dakika ve saniye olarak hesaplayın.
Başlayalım.
Python'un datetime modülü nasıl kullanılır?
Python'da tarih ve saatlerle çalışmak için datetime
modülünü kullanacaksınız. datetime
modülü, Python standart kitaplığının bir parçasıdır. Böylece devam edebilir ve hemen çalışma ortamınıza aktarabilirsiniz, şöyle:
import datetime
Saat farkını hesaplamak için iki farklı zaman damgası oluşturmanız gerekir. Şunları oluşturmayı seçebilirsiniz:
- iki
date
nesnesi, - iki
time
nesnesi veya - hem
date
hem detime
bir kombinasyonu —datetime
nesneleri.
Python'da bir tarih nesnesi nasıl oluşturulur
Datetime modülünden date
sınıfını içe aktaralım. Python'da bir tarih nesnesi oluşturmak için datetime.date(<year>,<month>,<day>)
genel sözdizimini kullanabilirsiniz. İşte bir date
nesnesi oluşturmaya bir örnek date1
:
from datetime import date date1 = datetime.date(2022,3,27) print(date1) # Output: 2022-03-27
Test etmek için kodu Geekflare Python derleyicisinde deneyebilirsiniz. Veya Python'u bilgisayarınıza yükleyin.
Yukarıda gösterildiği gibi, tarihi yazdırdığınızda, tarihler için YYYY-MM-DD
biçiminde biçimlendirilir.
Not : Ayı, başında sıfır olmadan bir tam sayı olarak belirttiğinizden emin olun. Tarihleri yazarken aya bir sıfır eklemeye alışmış olmanız muhtemeldir.
Örneğin, yılın 6. ayı olan Haziran'da bir tarih belirtmek için: 06'yı değil 6'yı kullanın.
Örneğin, ayın yalnızca 3
yerine 03
olarak belirtildiği aşağıdaki kod parçacığını çalıştırmayı deneyin. Gösterildiği gibi bir Sözdizimi Hatası verdiğini göreceksiniz:
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
Şimdi Python'da bir time
nesnesinin nasıl oluşturulacağını görelim.
Python'da bir zaman nesnesi nasıl oluşturulur
Bir zaman nesnesi oluşturmak için, time
sınıfını içe aktaralım. Herhangi bir Python zaman nesnesi, aşağıdaki sınıf öznitelikleri belirtilerek time
sınıfı kullanılarak oluşturulabilir: hour
, minute
, second
ve microsecond
.
Ancak, bu özelliklerin tümü isteğe bağlıdır. Belirli bir öznitelik belirtmezseniz, örneğin second
olarak, varsayılan olarak 0
ayarlanır.
Aşağıdaki kod parçacığı, time1
zaman nesnesini nasıl oluşturabileceğinizi gösterir. date
nesnesinde olduğu gibi, biçimlendirilmiş zamanı görmek için time
nesnesini yazdırabilirsiniz.
from datetime import time time1 = datetime.time(13,27,45,4600) print(time1) # Output: 13:27:45.004600
Python'da datetime nesnesi nasıl oluşturulur?
Gördüğünüz gibi, date
nesnesinin saat hakkında hiçbir bilgisi yok. Ve time
nesnesi tarih hakkında bilgi içermiyor.
Ancak pratikte hem tarih hem de saat bilgilerine ihtiyacınız olacak. Bu yüzden bunun yerine datetime
sınıfını kullanmanız önerilir.
Aşağıda gösterildiği gibi, Python'da datetime
sınıfına erişebilir ve datetime
nesneleri oluşturabilirsiniz:
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) print(dt1) # Output: 2022-03-27 13:27:45.046000
Şimdi second
öznitelik olmadan başka bir tarih-saat nesnesi dt2
oluşturalım. Varsayılan değer olan 0
ayarlandığını görebilirsiniz.
dt2 = datetime.datetime(2022,6,30,14,28) print(dt2) # Output: 2022-06-30 14:28:00
Şimdiye kadar Python'da tarihler, saatler ve tarihler olarak zaman damgalarının nasıl oluşturulacağını öğrendiniz. Şimdi herhangi iki zaman damgası arasındaki farkı nasıl hesaplayabileceğinizi görmenin zamanı geldi.
Öğrenmek için bir sonraki bölüme gidin.
Python'da timedelta nesnesi nasıl kullanılır?
Python'da timedelta
bir zaman aralığını ifade eder. İki date
, time
veya datetime
nesnesi arasındaki farktır.
İki date
, time
veya datetime
nesnesi ekler veya çıkarırsanız, bir timedelta
nesnesi alırsınız. Bu timedelta
nesnesi, zaman farkını hesaplamaya yardımcı olabilecek faydalı niteliklere ve yöntemlere sahiptir.
Devam edelim ve iki datetime
nesnesi dt1 ve dt1
arasındaki farkı 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'>
Yukarıdaki kod parçacığından, tdelta
değişkeninin dt1 ve dt1
arasındaki zaman farkını tuttuğunu dt2
. Ve tdelta timedelta
, Python'un yerleşik type()
işlevi kullanılarak tdelta
sınıfından olduğu doğrulanır.

Şimdi başka bir örnek kodlayalım.
İki tarih arasındaki zaman farkı nasıl bulunur?
Basit ama ilginç bir örnek verelim.
Problem : Mevcut tarih (bugün) ile doğum gününüz arasındaki zaman farkını hesaplamak için.
Bunu yapmak için, ilk zaman damgası olarak bugünü ve ikinci zaman damgası olarak da doğum gününüzü ayarlayın.
İlk adım olarak iki datetime
nesnesi oluşturalım:
- bugün için bir tane,
today
diyelim ve - doğum günün için bir tane daha, hadi ona doğum günü
bday
datetime
sınıfı, size geçerli yerel tarih ve saati veren now()
yöntemine sahiptir. O halde today
olsun - bizim referans tarihimiz olarak kullanalım.
today = datetime.datetime.now() print(today) # Sample Output: 2022-01-22 09:10:18.489538
Aşağıdaki kodda, bu yıl doğum bday
kalan süreyi hesaplamak için doğum gününü doğum tarihinizle değiştirin.
Bunu doğum gününüz geçtikten sonra okuyorsanız, doğum gününü bir sonraki doğum bday
ayarlamaktan çekinmeyin.
bday = datetime.datetime(2022,8,30,11,59) print(bday) # Sample Output: 2022-08-30 11:59:00
Bir sonraki adım, daha önce açıklandığı gibi bir timedleta
nesnesi olan time_diff
hesaplamaktır. Basitçe today
bday
çıkarın ve zaman farkına sahip olacaksınız.
time_diff = bday - today print(f"Your birthday is in {time_diff}") # Output Your birthday is in 220 days, 2:46:00.127416
Kalan günlerin sayısını öğrenmek için, time_diff
days niteliğini gösterildiği gibi kullanın:
tdays = time_diff.days print(f"Your birthday is in {tdays} days.") # Output Your birthday is in 220 days.
Saniye cinsinden zaman farkı nasıl bulunur
Şimdi doğum gününüzün kaç saniye uzakta olduğunu hesaplayalım.
Toplam zaman farkını saniye cinsinden hesaplamak için timedelta
nesnesi time_diff
üzerinde total_seconds total_seconds()
yöntemini kullanın.
tsecs = time_diff.total_seconds() print(f"Your birthday is {tsecs} seconds away.") # Output Your birthday is 19017960.127416 seconds away.
Eh, bu çok uzun bir bekleyiş!
Bununla birlikte, artık herhangi iki zaman damgası arasındaki zaman farkını saniye cinsinden nasıl hesaplayacağınızı biliyorsunuz.
Şimdi bazı temel bilgileri tekrar gözden geçirelim ve aşağıdakileri yazalım. Bir gün 24 saatten oluşur, bir saat 60 dakika uzunluğundadır ve 60 saniye bir dakikayı oluşturur.
Bu, aşağıdaki resimde özetlenmiştir:

Saniyeleri dakikalara, saatlere ve günlere dönüştürmek için aşağıdaki tabloyu kullanabilir ve ilgili dönüştürme faktörüne bölebilirsiniz.

Sonraki bölümlerde saniye cinsinden zaman farkını dakika ve saate çevirelim.
Dakika cinsinden zaman farkı nasıl bulunur
Saat farkını dakika olarak elde etmek için toplam saniyeyi 60'a bölmeniz yeterlidir.
tsecs
60'a bölelim ve bunu tmins
adlı bir değişkende şöyle saklayalım:
tmins = tsecs/60 print(f"Your birthday is {tmins} minutes away.") # Output Your birthday is 316966.0021236 minutes away.
Saat cinsinden zaman farkı nasıl bulunur
Artık zaman farkını dakika cinsinden hesapladığınıza göre, farkı saat cinsinden bulmak için bunu 60'a bölebilirsiniz. Veya toplam saniyeyi 60*60 = 3600'e bölebilirsiniz.
thrs = tsecs/(60*60) print(f"Your birthday is {thrs} hours away.") # Output Your birthday is 5282.76670206 hours away.
Artık seçtiğiniz herhangi bir birimde zaman farkını nasıl hesaplayacağınızı öğrendiniz.
Çözüm
Bu eğiticide, şunları nasıl yapacağınızı öğrendiniz:
- Python'un
datetime
modülünü kullanarak tarihler ve saatler oluşturun ve bunlarla çalışın, - bir zaman aralığı veya zaman farkı elde etmek için
timedelta
nesnelerini kullanın ve - saniye, dakika ve saat cinsinden zaman farkını hesaplayın.
Umarım bu öğreticiyi faydalı bulmuşsunuzdur. Artık Python'da zaman farkını hesaplama hakkında her şeyi bildiğinize göre, becerilerinizi uygulamaya koymanın zamanı geldi.
Mutlu öğrenme ve kodlama!
Python'da koda eşit veya eşit olmayan yazmayı veya yılan oyunu yapmayı buradan öğrenin.