Bloga Dön
2 min read

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)

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 edindateü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

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.