5.00 / 1 oy

C# ile yaş hesaplamak

Gün ve ay hassasiyetinde kişinin doldurduğu yaş üzerinden kaç yaşında olduğunu hesaplatmak istiyorum. Yani direk bugünkü yıldan kişinin doğduğu yılı çıkartmam yeterli olmayacak. C# tarihsel fark alma işlemlerinde TimeSpan mı kullanmalıyım yoksa DateTime kendi içinde gerekli ve yeterli metodları sunuyor mu?

mbologlu

31.07.2019 02:23

Bu soru 1 kez yanıtlandı.

  • 31 Temmuz 2019 10:15
    25

    En kısa yol olmayabilir ama ben şu şekilde düşündüm:

    - Kişinin doğum yılını bugünden çıkart, burası cepte

    - Biten yaş söylenir, kafanız karışıyorsa bebeğin 1 yaşına basması için doğduğu güne kadar 1 yıl geçmesi örneğini düşünebiirsiniz.

    - Kişinin doğduğu ay içinde bulunduğumuz aydan önceyse YA DA aynı aydaysak ama kişinin doğduğu gün bugünden küçükse -> yaşa +1 ekle

    Bugün 31 Temmuz 2019. Dolayısıyla 30 Temmuz 2018'de doğan bir bebek için yaşı bir bulacak (doğum günü dündü), 1 Ağustos için de sıfır bulacak (doğum günü yarın) bir algoritmaya ihtiyacımız var:

    1 Ağustus 2018 için:

    DateTime simdi = DateTime.Now;
    DateTime dogumTarihi = new DateTime(2018,8,1);
    int yas = simdi.Year - dogumTarihi.Year;
    
    if (dogumTarihi.Month > simdi.Month || (simdi.Month == dogumTarihi.Month && dogumTarihi.Day > simdi.Day))
        yas--;
    
    Console.WriteLine(yas);
    // sonuç: 0

    30 Temmuz 2018 için:

    DateTime simdi = DateTime.Now;
    DateTime dogumTarihi = new DateTime(2018,7,30);
    int yas = simdi.Year - dogumTarihi.Year;
    
    if (dogumTarihi.Month > simdi.Month || (simdi.Month == dogumTarihi.Month && dogumTarihi.Day > simdi.Day))
        yas--;
    
    Console.WriteLine(yas);
    // sonuç: 1

     

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
C# ile yaş hesaplamak

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.