Python'da Zaman Farkı Nasıl Hesaplanır

Yayınlanan: 2022-01-23

Python'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 de time 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:

Saat, Dakika ve Saniye

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.

Zaman Dönüşüm Tablosu

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.