Tamamdır hocam, şimdi oldu. Teşekkürler.
Ekrem beyin dediği negatiflik kısmını atlamayın orası önemli
Hocam üzülerek diyorum ki program hata veriyor. Sebebi ise örneğin 1920.4.23 tarihini girdiğimde sonuç 100 1 4 çıkıyor. Aslında 99 yıl yazması gerekiyordu, daha 100. yıl olmadı. 23 Nisanda 100. yıl olacak.
Biz ona hata demiyoruz, istediğimiz gibi çalışmadı diyoruz.
Hayır, benim attığım kodda sonuç 100 -1 4
çıkıyor. Bu yüzden bunu sormuştum:
Çözüm için ay negatif ise yılı azaltacaksınız, gün negatif ise ayı. Bir deneyin yapamazsanız yardım ederim.
tam olarak istediğin cevabı döndüren kodu aşağıya bırakıyorum.
from datetime import datetime
from time import sleep
yerel_tarih = datetime.now()
yerel_yil = yerel_tarih.year
yerel_ay = yerel_tarih.month
yerel_gun = yerel_tarih.day
toplam_ay = 12
toplam_gun = 365
gun = 30
dogum_gunu = int(input("DOĞUM GUNUNUZ = "))
dogum_ayi = int(input("DOĞUM AYINIZ = "))
dogum_yili = int(input("DOĞUM YILINIZ = "))
yil_hesaplama = (yerel_yil - dogum_yili)-1
gun_hesaplama = 29 - dogum_gunu
ay_hesaplama = (toplam_ay - dogum_ayi) + yerel_ay
toplam_gun_hesaplama = (yil_hesaplama * 365) + (((ay_hesaplama * 30) - (30 - yerel_gun)) + (yerel_ay * 1)) + gun_hesaplama + 5
print()
print("Yaş hesaplaması yapılıyor, lütfen bekleyiniz")
sleep(1)
print("Toplam yaşadığınız gün sayısı = {}".format(toplam_gun_hesaplama))
print("Doğduğunuz tarihten bu güne kadar = {} sene, {} ay, {} gün geçti.".format(yil_hesaplama,ay_hesaplama,gun_hesaplama))
Tüm satırları incele nerede ne yaptığıma neyle neyi hangi işlemlerden geçirdiğimi okuyarak tüm mantığı kavramaya çalış reis. Takılırsan ben açıklarım ama önce kendin okumaya çalış. Hayırlı geceler
Aşağıdaki kodları inceleyin lütfen.
from datetime import datetime as dt
def kac_zaman_gecti(tarih: dt = None):
yil = (dt.now() - tarih).total_seconds() / (365.2421875 * 86400)
ay = ((yil - int(yil)) * 365.2421875 / 30)
gun = (ay - int(ay)) * 30
saat = (gun - int(gun)) * 24
dakika = (saat - int(saat)) * 60
saniye = (dakika - int(dakika)) * 60
return f"{int(yil)} yil, {int(ay)} ay, {int(gun)} gun, "\
f"{int(saat)} saat, {int(dakika)} dakika, {int(saniye)} saniye"
An itibariyle tarih: 2020.03.28 06:28
.
Örnekler:
print(dt.now().strftime("%Y.%m.%d %H:%M:%S")
print(kac_zaman_gecti(tarih=dt.now()))
print(kac_zaman_gecti(tarih=dt.strptime("2020.03.28", "%Y.%m.%d")))
print(kac_zaman_gecti(tarih=dt.strptime("2019.03.28", "%Y.%m.%d")))
print(kac_zaman_gecti(tarih=dt.strptime("1900.01.01", "%Y.%m.%d")))
print(
kac_zaman_gecti(
tarih=dt.strptime("2020.01.28 06:28", "%Y.%m.%d %H:%M")
)
)
Sonuçlar:
2020.03.28 06:28:30
0 yil, 0 ay, 0 gun, 0 saat, 0 dakika, 0 saniye
0 yil, 0 ay, 0 gun, 6 saat, 28 dakika, 30 saniye
1 yil, 0 ay, 1 gun, 0 saat, 39 dakika, 45 saniye
120 yil, 2 ay, 27 gun, 4 saat, 58 dakika, 30 saniye
0 yil, 2 ay, 0 gun, 0 saat, 0 dakika, 30 saniye
çok teşekkür ederim.
Çok teşekkür ederim.