Programlama dilleirnde tarih bilgisi sık kullanılan veri tiplerinden biridir. Ancak kullanımı biraz zordur. Zira veri tipi bilgisi ne sayısaldır ne de alfasayısal. Matematiksel işlemleri yaparken programcıyı zorlamaktadır. Bu uygulamada kullanıcıdan kullanıcı adını ve doğum tarihini girmesini siteyeceğiz. Girilen bilgilere göre kullanıcının yaşını bulacağız.
İsmi YasHesaplama olan yeni bir proje oluşturalım.
Projeye yasbulma.py isminde bir python dosyası ekleyelim.
Öncelikle değişkenleri tanımlayalım. Soruyu dikkatli bir şekilde okuyalım.
Kullanıcı adı için username, doğum tarihi için birthofdate, yaş bilgisi için age, şimdiki tarih için today değişkenlerini kullanalım. Burada today değişkeninin değerini şimdiki tarihe ait yıl olan 2023 yapalım.
# Değişkenleri tanımla
username: str = ""
birthofdate: int = 0
today: int = 2023
age: int = 0
Şimdi kullanıcının girdiği değerleri bu değişkenlere aktaracağız. Kullanıcıdan kullanıcı adı ve doğum tarihini alacağız. Ancak doğum tarihi olarak sadece yıl bilgisini girmesini isteyeceğiz.
# Değerleri gir
username = input("Kullanıcı adı : ")
birthofdate = int(input("Doğum tarihi <yıl> : "))
Kullanıcının yaşını bulmak için şu anki tarihten doğum tarihini çıkarmamız gerekir. Hadi bunu yapalım.
# İşlemi yap
age = today - birthofdate
Son olarak "Merhaba ............, yaşınız ........" formatında çıktı ekranı oluşturalım.
# Sonucu görüntüle
print("Merhaba", username, ", yaşınız", age)
Uygulamayı çalıştıralım. Gerekli bilgileri girelim. Sonucun istediğimiz gibi çıktığını görürsünüz. Bu uygulamayı 2024 yılında çalıştırdığımızda yaşın hep aynı kaldığını göreceğiz. Sebebi today değişkeninin değerinin sabit kalması. Halbuki yıllar sürekli değişiyor. Bu arada yaşımızda artıyor haliyle. Peki bu sorunu nasıl çözeceğiz. Şu anki tarihe ait yıl bilgisini almamız gerekir. Bunun için datetime kütüphanesinde yer alan date sınıfını projeye eklemeliyiz. Hadi bu işlemi gerçekleştirelim.
from datetime import date
Hatırlarsanız today değişkeninin değerini sabit yapıp 2023 sayısını eklemiştik. Artık bu değer şimdiki tarihe ait yıl bilgisini alacaktır. Bu işlem için today() metodunu kullanacağız. Bu metod içerisinde yıl bilgisini almak için strftime() deyimini kullanıp tarih bilgisini parçalayacağız. Burada %Y değeri mevcut tarih içinden yıl bilgisini almaktadır.
today: int = int(date.today().strftime('%Y'))