PDA

Bekijk Volledige Versie : [ASP.NET-C#] Leeftijd uitrekenen.



Robert van de Vijver
07/03/05, 00:45
Hallo allemaal,

Ik heb een stukje code en dat ziet er als volgt uit:

De leeftijd is opgegeven in TextBox1 als dd-mm-yyyy.

System.DateTime TimeDate = new System.DateTime();

DateTime GeboorteDatum = Convert.ToDateTime(TextBox1.Text);
int Leeftijd = TimeDate.Year - GeboorteDatum.Year; Label1.Text =
Leeftijd.ToString();
Label2.Text = Convert.ToString(TimeDate.Year);
Label3.Text = Convert.ToString(GeboorteDatum.Year);

Label 2 geeft waarde 1 ipv 2005. Dus als leeftijd geeft hij een negatief
getal. Hoe kan dit?
Het uitrekenen van de leeftijd klopt nu theoretisch ook niet. Als je
verjaardag nog niet geweest is, dan ben je volgens de berekening een jaar
ouder. Weet iemand hoe je dus rekening kan houden met de datum? Dat je dus
de volledige data van elkaar aftrekt.

Met vriendelijke groet,

Robert van de Vijver.

Wim
07/03/05, 10:15
Robert van de Vijver wrote:
> Hallo allemaal,
>
> Ik heb een stukje code en dat ziet er als volgt uit:
>
> De leeftijd is opgegeven in TextBox1 als dd-mm-yyyy.
>
> System.DateTime TimeDate = new System.DateTime(); DateTime GeboorteDatum =
> Convert.ToDateTime(TextBox1.Text);
> int Leeftijd = TimeDate.Year - GeboorteDatum.Year; Label1.Text =
> Leeftijd.ToString();
> Label2.Text = Convert.ToString(TimeDate.Year);
> Label3.Text = Convert.ToString(GeboorteDatum.Year);
>
> Label 2 geeft waarde 1 ipv 2005. Dus als leeftijd geeft hij een
> negatief getal. Hoe kan dit?

System.DateTime TimeDate = new System.DateTime();

Een nieuwe datum geeft 1 januari van het jaar 1.

Gebruik daarom:
System.DateTime TimeDate = DateTime.Today();

> Het uitrekenen van de leeftijd klopt nu theoretisch ook niet. Als je
> verjaardag nog niet geweest is, dan ben je volgens de berekening een
> jaar ouder. Weet iemand hoe je dus rekening kan houden met de datum?
> Dat je dus de volledige data van elkaar aftrekt.

int years = TimeDate.Year - GeboorteDatum.Year;
if (TimeDate.Month < GeboorteDatum.Month ||
(TimeDate.Month == GeboorteDatum.Month &&
TimeDate.Day < GeboorteDatum.Day))
years--;

--

Wim

Robert van de Vijver
07/03/05, 15:45
"Wim" <wim@nospam.com> schreef in bericht
news:SPUWd.8474$Mo4.2066@blueberry.telenet-ops.be...
> Robert van de Vijver wrote:
>> Hallo allemaal,
>>
>> Ik heb een stukje code en dat ziet er als volgt uit:
>>
>> De leeftijd is opgegeven in TextBox1 als dd-mm-yyyy.
>>
>> System.DateTime TimeDate = new System.DateTime(); DateTime GeboorteDatum
>> = Convert.ToDateTime(TextBox1.Text);
>> int Leeftijd = TimeDate.Year - GeboorteDatum.Year; Label1.Text =
>> Leeftijd.ToString();
>> Label2.Text = Convert.ToString(TimeDate.Year);
>> Label3.Text = Convert.ToString(GeboorteDatum.Year);
>>
>> Label 2 geeft waarde 1 ipv 2005. Dus als leeftijd geeft hij een
>> negatief getal. Hoe kan dit?
>
> System.DateTime TimeDate = new System.DateTime();
>
> Een nieuwe datum geeft 1 januari van het jaar 1.
>
> Gebruik daarom:
> System.DateTime TimeDate = DateTime.Today();
>
>> Het uitrekenen van de leeftijd klopt nu theoretisch ook niet. Als je
>> verjaardag nog niet geweest is, dan ben je volgens de berekening een
>> jaar ouder. Weet iemand hoe je dus rekening kan houden met de datum?
>> Dat je dus de volledige data van elkaar aftrekt.
>
> int years = TimeDate.Year - GeboorteDatum.Year;
> if (TimeDate.Month < GeboorteDatum.Month ||
> (TimeDate.Month == GeboorteDatum.Month &&
> TimeDate.Day < GeboorteDatum.Day))
> years--;
>
Bedankt, het werkt.

Gr,

Robert