Datetime modülü ile geçen saniyeyi bulma sıkıntısı

Arkadaşlar merhaba datetime modülü ile kendi belirlediğim bir tarihle bugünün tarihi arasındaki farkı alıyorum. fakat aşağıda da görecebileceğiniz gibi iki tarih arasında 30 yıl fark var ama kodun verdiği sonuçlarda saniye farkı neredeyse değişmiyor acaba bunun nedeni nedir?

>>> from datetime import datetime
>>> t = '27.1.1980'
>>> tarih = datetime.strptime(t,'%d.%m.%Y')
>>> tarih
datetime.datetime(1980, 1, 27, 0, 0)
>>> datetime.now()-tarih
datetime.timedelta(13950, 65314, 115841)
>>>     # yılı 2010 yapıyorum
>>> t ="27.1.2010"
>>> tarih = datetime.strptime(t,'%d.%m.%Y')
>>> tarih
datetime.datetime(2010, 1, 27, 0, 0)
>>> datetime.now()-tarih
datetime.timedelta(2992, 65423, 280190)

Saniyede fazla bir degismenin olmamasının sebebi sistem hizi ile alakalı.Yani sistem isini saliselerle hallediyor burada.Soyle bir ornek vereyim.

Ama su da onemli:now ları ne zaman olctugunuz

Asagıda kod yazdım ama insalllah anlarsınız.

from datetime import datetime


t = '27.1.1980'
tarih = datetime.strptime(t,'%d.%m.%Y')
print(tarih)

ilk_olcum = datetime.now()  #en bastaki now degeri

sonuc1 = ilk_olcum-tarih

print(sonuc1)  
print("------------------")



t ="27.1.2010"
tarih = datetime.strptime(t,'%d.%m.%Y')
print(tarih)

ikinci_olcum = datetime.now() #ikinci now degeri

sonuc2 = ikinci_olcum-tarih

print(sonuc2)

print("#################")

print(ikinci_olcum - ilk_olcum)
print(sonuc2-sonuc1)

Bir de buna bakın

from datetime import datetime
from time import sleep

t = '27.1.1980'
tarih = datetime.strptime(t,'%d.%m.%Y')
print(tarih)

ilk_olcum2 = datetime.now()

sonuc1 = ilk_olcum2-tarih

print(sonuc1)
print("------------------")

sleep(1) #bir saniye bekleyelim

t ="27.1.2010"
tarih = datetime.strptime(t,'%d.%m.%Y')
print(tarih)

ikinci_olcum2 = datetime.now()

sonuc2 = ikinci_olcum2-tarih

print(sonuc2)

print("#################")

print(ikinci_olc2)
print(sonuc2-sonuc1)

Son olarak da buna bakın:

from datetime import datetime
from time import sleep

t = '27.1.1980'
tarih = datetime.strptime(t,'%d.%m.%Y')
print(tarih)

ilk_olcum2 = datetime.now()

sonuc1 = ilk_olcum2-tarih

print(sonuc1)
print("------------------")

sleep(2) #iki saniye bekleyelim

t ="27.1.2010"
tarih = datetime.strptime(t,'%d.%m.%Y')
print(tarih)

ikinci_olcum2 = datetime.now()

sonuc2 = ikinci_olcum2-tarih

print(sonuc2)

print("#################")

print(ikinci_olc2)
print(sonuc2-sonuc1)

Sanırım siz ölçümlerin yapıldığı zamanlar arasındaki saniye farkı olmamasını anlatmışsınız ama benim anlamadığım kısım şöyle bildiğim kadarıyla aradaki farkı gösteren timedelta da ikinci paramatre iki tarih arasında kaç saniye fark olduğunu gösteriyor,

datetime.timedelta(13950, 65314, 115841) #1980 yılı
datetime.timedelta(2992, 65423, 280190)  #2010 yılı

yani bugünün tarihi ile 1980 arasındaki farkı gün cinsinden doğru veriyor 2010 da da aynı şekilde… Ama aradaki farklara saniye cinsinden baktığımızda 11000 gün fark olmasına rağmen saniye farkı 1-2 dakika. Hatta 2018-2010 tarihindaki saniye farkı(65423 sn) 2018-1980 den(65314 sn) az olması gerekirken daha fazla.

Acaba ikinci parametre saniye değil mi veya gösterimde bilmediğim bişey mi var?

Kusura bakmayin,hafta ici cevaplayamadim.Sorunuza gelecek olursak:

Anlayissizligima verin lutfen,ama yine ayni seyi diyecegim galiba.Asagidaki kodlarla denemeler yapabilir misiniz?Aralarinda kac saniye kac dakika oldugunu deneyerek bakin,ciktilari dikkatlice inceleyin.Onceki cevabimda anlatamamistim,uzgunum.Ayni kod galiba ama bir bakabilir misiniz?

from datetime import datetime as d
#import time


simdiki_zaman = d.now()

t1 = "27.1.1980"

tarih1 = d.strptime(t1,'%d.%m.%Y')

print(tarih1)

t2 = "27.1.2010"

tarih2 = d.strptime(t2,'%d.%m.%Y')

print(tarih2)


now = d.now()
deger1 = simdiki_zaman-tarih1

print(deger1)

print("------------------")

deger2 = now-tarih2

print(deger2)

print("-----------------------")

print("olctugun simdiki zamanlarin farki: ",now-simdiki_zaman) #now meselesini biliyorsunuz zaten
print("zaman farklari: ",deger2-deger1)   #hani siz diyordunuz ya 2 dk fark oluyor arasinda,iste bu size aradaki farkin ne kadar oldugunu gosterecek.kusura bakmayin tekrardan,ayni kodu tekrar yaziyorum ama anlayamadiginiz nokta bu veya ben anlayissizim:)
1 Beğeni