Avatar billede kaptajnknas Nybegynder
19. januar 2008 - 08:15 Der er 15 kommentarer og
2 løsninger

Beregning af alder

Er det muligt at beregne ens alder ud fra dette format?
02-05/1972
Avatar billede nielle Nybegynder
19. januar 2008 - 09:00 #1
Sådan?

<%
dateStr = "02-05/1972"
date1 = CDate(dateStr)

date2 = Date() ' I dag

' Alderen ved årets afslutning.
alder = DateDiff("yyyy", date1, date2)

' Justering efter om man har haft fødselsdag i år.
If (Month(date1) < Month(date2)) Or _
  (Month(date1) = Month(date2) And Day(date1) < Day(date2)) Then
    alder = alder - 1
End If

Response.Write(alder)
%>


Læs f.eks. mere om DateDiff() her:

http://www.w3schools.com/vbscript/func_datediff.asp
Avatar billede madeindk Nybegynder
19. januar 2008 - 17:35 #2
Eller endnu mere simpelt :-)

<%
Session.LCID = 1030

Function GetAge(Dateofbirth)
  GetAge = Year(Date) - Year(Dateofbirth)
  If DateDiff("s", Now, Replace(Dateofbirth, Year(Dateofbirth), Year(Date))) > 0 Then
      GetAge = GetAge - 1
  End If
End Function

Response.Write GetAge("02-05/1972")
%>
Avatar billede kaptajnknas Nybegynder
19. januar 2008 - 21:46 #3
Super. jeg prøver.
Avatar billede kaptajnknas Nybegynder
19. januar 2008 - 22:35 #4
Det virker fint.
Mange tak for hjælpen. :-)
Avatar billede nielle Nybegynder
19. januar 2008 - 22:54 #5
Svar :^)
Avatar billede kaptajnknas Nybegynder
19. januar 2008 - 23:13 #6
Er begge løsninger lige gode.(præcise)?
Avatar billede kaptajnknas Nybegynder
19. januar 2008 - 23:44 #7
Og vil det også være muligt at gøre det modsat. feks. at finde alle der er 35år?
Avatar billede nielle Nybegynder
20. januar 2008 - 09:31 #8
> Er begge løsninger lige gode.(præcise)?

Hvis præsition er det eneste kriterie - ja :^)

> Og vil det også være muligt at gøre det modsat. feks. at finde alle der er 35år?

Det må du nok lige præsisere lidt mere?
Avatar billede kaptajnknas Nybegynder
20. januar 2008 - 12:15 #9
jo f.eks hvis jeg vil have fødselsdatoen vist i 3 formularer.
Dato - måned - år
Avatar billede nielle Nybegynder
20. januar 2008 - 12:22 #10
Hvad har det med at gøre med at finde alle som er 35 år gamle?

Du kan få en dato opdelt i dens dele med noget i stil med dette:

dateStr = "02-05/1972"
date1 = CDate(dateStr)

Response.Write "d. " & Day(date1) & " / " & Month(date1) & " - " & Year(date1)
Avatar billede kaptajnknas Nybegynder
20. januar 2008 - 21:03 #11
Jeg ville bruger formatet til at søge i databasen efter f.eks alle bruger der er yngre end 35år men det bruger nok en smule vanskeligt? så derfor prøver jeg på en anden måde, nemlig istedet at opdaterer et felt der hedder alder med den først viste kode.
Avatar billede kaptajnknas Nybegynder
21. januar 2008 - 11:36 #12
Det er bare en ting. der opstår scriptfejl hvis der skrives 30-02/1980 da der jo kun er 29 dage i februar.
Kan der gøres noget ved det?
Avatar billede nielle Nybegynder
21. januar 2008 - 19:36 #13
ASP/VBScript er ikke vildt acanceret mht. hvordan fejl kan håndteres.

Der er strort set kunne denne her:

On Error Resume Next

- som basalt set får ASP til at ignorere fejl og gå videre til næste linje.
Avatar billede kaptajnknas Nybegynder
21. januar 2008 - 19:59 #14
Fint. det virker også godt nok med On Error Resume Next. :-)
svar = points
Avatar billede nielle Nybegynder
21. januar 2008 - 20:08 #15
Svar :^)
Avatar billede nielle Nybegynder
29. januar 2008 - 16:55 #16
Så mangler du bare at acceptere mit svar :^)
Avatar billede kaptajnknas Nybegynder
29. januar 2008 - 17:03 #17
Accept.:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester