Python ile kullanıcıdan tarih nasıl alınır?

sulukurabiye

Picopat
Katılım
6 Ağustos 2024
Mesajlar
120
Daha fazla  
Cinsiyet
Erkek
Kullanıcının yaşını hesaplayacak bir program yazmam lazım, temeli kurdum kullanıcıdan zaman alınacak ve bugünün tarihinden çıkarılacak ancak kullanıcıdan tarih almayı bir türlü beceremedim, yardımcı olur musunuz?
 
Kullanıcının yaşını hesaplayacak bir program yazmam lazım, temeli kurdum kullanıcıdan zaman alınacak ve bugünün tarihinden çıkarılacak ancak kullanıcıdan tarih almayı bir türlü beceremedim, yardımcı olur musunuz?
from datetime import datetime


dogum_tarihi_str = input("Doğum tarihinizi GG/AA/YYYY formatında girin: ")

try:

dogum_tarihi = datetime.strptime(dogum_tarihi_str, "%d/%m/%Y")


bugun = datetime.now()


yas = bugun.year - dogum_tarihi.year


if (bugun.month, bugun.day) < (dogum_tarihi.month, dogum_tarihi.day):
yas -= 1

print(f"Yaşınız: {yas}")
except ValueError:
print("Lütfen tarihi GG/AA/YYYY formatında girin.")



Otomatik düzeltmeden bazı yerler kaymış ama genel hatları ile bunlar.
 
Python:
from dateutil.relativedelta import relativedelta
from datetime import datetime

# Kullanıcıdan doğum tarihini al
dogum_tarihi_str = input("Doğum tarihinizi (YYYY-AA-GG formatında) giriniz: ")

try:
    # Doğum tarihini datetime nesnesine çevir
    dogum_tarihi = datetime.strptime(dogum_tarihi_str, "%Y-%m-%d")
    # Bugünkü tarih
    bugun = datetime.now()
    # Yaşı hesapla
    fark = relativedelta(bugun, dogum_tarihi)

    print(f"Yaşınız: {fark.years}")
except ValueError:
    print("Geçersiz tarih formatı! Lütfen YYYY-AA-GG formatında bir tarih girin.")
 
Python:
from dateutil.relativedelta import relativedelta
from datetime import datetime

# Kullanıcıdan doğum tarihini al
dogum_tarihi_str = input("Doğum tarihinizi (YYYY-AA-GG formatında) giriniz: ")

try:
    # Doğum tarihini datetime nesnesine çevir
    dogum_tarihi = datetime.strptime(dogum_tarihi_str, "%Y-%m-%d")
    # Bugünkü tarih
    bugun = datetime.now()
    # Yaşı hesapla
    fark = relativedelta(bugun, dogum_tarihi)

    print(f"Yaşınız: {fark.years}")
except ValueError:
    print("Geçersiz tarih formatı! Lütfen YYYY-AA-GG formatında bir tarih girin.")
'from dateutil.relativedelta import relativedelta' Komut satırı gereksiz zaten 'datetime' kütüphanesi aynı işlevi görüyor, o kadar ayrıntılı bir hesaplama yapılacak bir şey yok ortada.
 
Evet doğru ama
Kod:
yas = bugun.year - dogum_tarihi.year

if (bugun.month, bugun.day) < (dogum_tarihi.month, dogum_tarihi.day):
    yas -= 1
yerine
Kod:
fark = relativedelta(bugun, dogum_tarihi)
kullanmak daha basit ve temiz.
 
Evet doğru ama.
Kod:
yas = bugun.year - dogum_tarihi.year

if (bugun.month, bugun.day) < (dogum_tarihi.month, dogum_tarihi.day):
 yas -= 1
Yerine.
Kod:
fark = relativedelta(bugun, dogum_tarihi)
Kullanmak daha basit ve temiz.

Bana kolay gelen kısım o şekilde halihazırda kod yazarken boş bir sayfaya hızlıca yazdığım şeyler, zaten bu kodu esas alıp kolayca halledebilir.
 
Sana nasıl teşekkür edebileceğimi bilmiyorum. Tek bilmeni istediğim, sana minnettarım.

Evet doğru ama
Kod:
yas = bugun.year - dogum_tarihi.year

if (bugun.month, bugun.day) < (dogum_tarihi.month, dogum_tarihi.day):
    yas -= 1
yerine
Kod:
fark = relativedelta(bugun, dogum_tarihi)
kullanmak daha basit ve temiz.
Daha kodda çok yeni yetişen bir kişiyim, yeni yeni öğreniyorum. Yani benim için aşırı karışık kodlar.. Ama yardım düşüncen için çok teşekkür ederim.
 
Yasini hesaplayacaksan hangi yilda dogdugunu sor yalnizca, 1975 vs gibi. Datetime parse etmekle ugrasmamis olursun. Ya da gun, ay, yil seklinde 3 soru sorup 3 cevap alip islem yapabilirsin. Yine de validasyon yapmalisin tabi.
 

Technopat Haberler

Geri
Yukarı