Obliczanie wieku na podstawie daty urodzenia i śmierci

0

Jak obliczyć wiek na podstawie daty urodzenia i daty śmierci?

Mam coś takiego:

w klasie Osoba pola :

public DateTime?
            DataUrodzenia = null,
            DataSmierci = null
            ;

Właściwość:

 public TimeSpan? Wiek
        {
            get { return DataSmierci - DataUrodzenia; }
        }

i w mainie:

static void Main(string[] args)
        {
            Osoba osoba = new Osoba("Jan Kowalski");


            osoba.Imie = "Marek";
            osoba.Nazwisko = "Nowak";

            
            


            osoba.DataUrodzenia = new DateTime(2015, 12, 31);
            osoba.DataSmierci = new DateTime(2020, 12, 31);


            Console.WriteLine(osoba.ImieNazwisko);

            Console.WriteLine(osoba.Wiek);



        }

Wychodzi coś takiego :
screenshot-20220624180602.png

5

TimeSpan ma wiele właściwości, https://docs.microsoft.com/pl-pl/dotnet/api/system.timespan?view=net-6.0, przelicz Days na lata.

1

@Saalin: Zwykłe przeliczenie Days na lata może czasem podać zły wynik, bo nie uwzględnia lat przestępnych.
Trzeba by od Days odjąć ilość dni przestępnych pomiędzy dwiema datami. I dopiero wtedy podzielić przez 365.

5

Tak patrzę i wydaje mi się że kawał: -
Czym się różni nie programista od programisty?
Nie programista myśli że w kilobajcie 1000 bajtów, zaś programista myśli że w kilometrze 1024 metra!

- wcale nie jest kawałem.

A nie można tak jak nie programiści to robią odejmujemy od roku śmierci rok urodzenia?
Ewentualnie jak mądrzy nie programiści ... jw. po czym w datę urodzenia podstawiamy rok śmierci i jeżeli "kombinowana" data większa niż data śmierci odejmujemy jedynkę,

1 użytkowników online, w tym zalogowanych: 0, gości: 1