/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Fejl i DateDiff() funktion?
Fra : Morten


Dato : 28-07-02 13:07

Hejsa,

I min database har jeg registreret folks fødselsdato. Normalt bruger
jeg VBScript funktionen DateDiff til at finde ud af hvor gamle folk er
i år, eksempelvis:

DateDiff("yyyy",RS("Birthday"),Date())

Normalt virker det glimrende, men her i dag har jeg opdaget et
problem:
En bruger der har fødselsdag den 14. august 1984 står som værende 18
år. Det er jo næsten korrekt, men ikke helt, det er 4 dage for
tidligt.
Hvad går galt? Datoen på serveren er indstillet korrekt.

Mvh.
Morten

 
 
Jørn Andersen (28-07-2002)
Kommentar
Fra : Jørn Andersen


Dato : 28-07-02 16:05

On 28 Jul 2002 05:07:27 -0700, spam@borg.net (Morten) wrote:

>I min database har jeg registreret folks fødselsdato. Normalt bruger
>jeg VBScript funktionen DateDiff til at finde ud af hvor gamle folk er
>i år, eksempelvis:
>
>DateDiff("yyyy",RS("Birthday"),Date())
>
>Normalt virker det glimrende, men her i dag har jeg opdaget et
>problem:
>En bruger der har fødselsdag den 14. august 1984 står som værende 18
>år. Det er jo næsten korrekt, men ikke helt, det er 4 dage for
>tidligt.
>Hvad går galt? Datoen på serveren er indstillet korrekt.

Jeg tror, det er fordi du beder den sammenligne årstallene.

Hvis du fx sammenligner 31.12.01 og 1.1.02, får du 1 år, selv om der
kun er gået en dag, mens fx en sammenligning af 1.1.01 og 31.12.01
giver 0 år, selv om der er gået 364 dage.

En idé til aldersberegning kig evt. her:
<URL:
http://www.cit.teknologisk.dk/brugergrupper/accesserfa/videnbase/Kodeeksempler/cpr-numre/default.asp>



Good luck!

--
Jørn Andersen,
Brønshøj

Morten (28-07-2002)
Kommentar
Fra : Morten


Dato : 28-07-02 21:28

Fandt selv en løsning:

<%
Function beregnAlder(ByVal birthdate)

   Dim intAge
   intAge = DateDiff("yyyy", birthdate, Date())

   If Date() < DateSerial(Year(Date()), Month(birthdate), Day(birthdate)) Then
      intAge = intAge - 1
   End If

   beregnAlder = intAge

End Function
%>

- Morten

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste