Python'da Yaş Nasıl Hesaplanır (datetime ve dateutil Örnekleri)
Python'da doğum tarihinden itibaren yaşı nasıl hesaplayacağınızı öğrenin. Tamamlanan yılları, belirli bir tarih itibarıyla yaşı ve artık yıllar ve saat dilimleri gibi sık karşılaşılan tuzakları içerir.
Python'da Yaş Nasıl Hesaplanır (datetime ve dateutil Örnekleri)
Eğer ihtiyacın olursaPython'da yaş hesaplamaDoğum tarihinden itibaren doğru yapılması gereken en önemli şey yaş tanımıdır: çoğu uygulamanıntamamlanan yıllar(tam doğum günleri), sadece yıllar arasındaki fark değil.
1) Tamamlanan yıllar (güvenli tanım)
Bu, doğum tarihinden bu yana geçen tam yıl sayısını (DOB) döndürür. Cari yılda doğum günü henüz gerçekleşmemişse 1 çıkarılır.
from datetime import date
def age_years(dob: date, as_of: date | None = None) -> int:
if as_of is None:
as_of = date.today()
years = as_of.year - dob.year
before_birthday = (as_of.month, as_of.day) < (dob.month, dob.day)
return years - 1 if before_birthday else years
print(age_years(date(2000, 10, 5), date(2026, 2, 26)))
2) Belirli bir tarih itibarıyla yaş (sadece bugün değil)
Sigorta fiyatlandırması, uygunluk kontrolleri, okul kesintileri, raporlar gibi pek çok kullanım örneğinin bir "itibariyle" tarihi olması gerekir. Yukarıdaki işlev zaten bunu destekliyoras_of.
3) Tam stil çıktısı (yıllar ve aylar)
"25 yıl 4 ay" gibi bir çıktı istiyorsanız şunu kullanın:dateutil.relativedelta(ay uzunluklarını doğru şekilde işler).
from datetime import date
from dateutil.relativedelta import relativedelta
def age_ym(dob: date, as_of: date | None = None):
if as_of is None:
as_of = date.today()
rd = relativedelta(as_of, dob)
return rd.years, rd.months
print(age_ym(date(2000, 10, 5), date(2026, 2, 26)))
4) Yaygın tuzaklar (ve bunlardan nasıl kaçınılacağı)
- Artık gün doğum günleri:Artık olmayan yıllarda 29 Şubat'a nasıl davranmak istediğinize karar verin. Birçok sistem 28 Şubat veya 1 Mart'ı kullanır. Kitaplığın davranışı önemlidir, bu nedenle test edin.
- Tarihler ve saat dilimleri:DOB için tercih edin
dateüzerindedatetime. Tarihsaatleri kullanmanız gerekiyorsa, önce aynı saat dilimine göre normalleştirin. - Gelecekteki DOB veya eksik değerler:Negatif yaşları veya çökmeleri önlemek için girdileri doğrulayın.
Hızlı kontrol (kod yok)
Hızlı bir şekilde tek bir sonuca ihtiyacınız varsa çevrimiçi hesap makinesini kullanın:Yaşı Çevrimiçi Hesapla.
İlgili kılavuzlar
- Yaş Nasıl Hesaplanır (kılavuzun tamamı)
- Excel'de Yaş Nasıl Hesaplanır?
- JavaScript'te Yaş Nasıl Hesaplanır?
SSS
Neden (bugün.yıl - dob.yıl) bazen yanlıştır?
Çünkü doğum gününün bu yıl gerçekleşip gerçekleşmediğini görmezden geliyor. Doğum gününden önce 1 çıkarmalısınız.
Doğum tarihi olarak tarihsaati mi yoksa tarihi mi kullanmalıyım?
Kullanmakdatemümkün olduğunda. DOB bir takvim günüdür ve saat dilimleri tarih ve saatleri günler arasında değiştirebilir.