Gün-Ay-Yıl Hesaplama Programı

Tamamdır hocam, şimdi oldu. Teşekkürler.

Ekrem beyin dediği negatiflik kısmını atlamayın orası önemli

1 Beğeni

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.

@monay48

tam olarak almak istediğin cevap bu ve bu cevabı dönen kodları istiyorsun dimi reis?


Ekran Alıntısı

1 Beğeni

@monay48

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

1 Beğeni

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
2 Beğeni

çok teşekkür ederim.

1 Beğeni

Çok teşekkür ederim.

1 Beğeni