Avatar billede klyde Nybegynder
25. september 2002 - 00:00 Der er 10 kommentarer og
3 løsninger

Konverter dato til alder

Hejsa...

Nu har jeg siddet med dette problem længe nok, så jeg vender ansigt mod jer...

Jeg skal lave et chart over nogle brugeres alder.
Jeg har fødselsdato på alle brugerne, jeg mangler bare at få dem konverteret til alder, fx. 14-11-1982 bliver til 19 år.
Så har jeg et tal at arbejde med i stedet, hvilket (for mit vedkommene) er noget næmmere.

Jeg har siddet og fusket lig frem og tilbage med nogle ting men har ikke kunne få det til at virke...
Min kode ser således ud lige nu:
-------------------------------------------------------
<%
function FindAlder(tal1,tal2)
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver=SQL Server; Server=ServerIP; Uid=UserID; Pwd=Password; Database=db"'
    AntalSQL = "SELECT * FROM BrugerListeTemp"
    Set rsAntal = Conn.Execute (AntalSQL)
    Do
    vari = DateDiff("yyyy", Date(), rsAntal("FDag"))
    If vari > tal1 And vari < tal2 Then
    AntalCount = AntalCount + 1
    End If
    Loop While Not rsAntal.eof
FindAlder = AntalCount
end function
ShowChart Array(FindAlder(10,20), FindAlder(20,30), FindAlder(30,40), FindAlder(40,50), FindAlder(50,60), FindAlder(60,70), FindAlder(70,80), FindAlder(80,90), FindAlder(90,100), FindAlder(100,110)), Array("10", "20", "30", "40", "50", "60", "70", "80", "90", "100"), "Alders Chart", "Alder", "Antal"
%>
-------------------------------------------------------
Kan i hjælpe?

/Klyde
Avatar billede mccannon Nybegynder
25. september 2002 - 00:06 #1
hvis du bare vil have fat i vedkommendes alder .:
born = "14-11-1982"
Born = right(born,4)
alder = year(now) - born
response.write alder
resultat = 20
Avatar billede klyde Nybegynder
25. september 2002 - 00:09 #2
Det lyder jo meget nemt, men...
I dette eksempel bliver personen 1 år for gammel, resultat skal kun være 19...
Avatar billede mccannon Nybegynder
25. september 2002 - 00:11 #3
umm ikke forstået ??
Avatar billede mccannon Nybegynder
25. september 2002 - 00:12 #4
rsAntal("FDag") i den står der da 14-11-1982 ?
Avatar billede klyde Nybegynder
25. september 2002 - 00:13 #5
14-11-1982 er fødselsdatoen for en 19 årig person, ikke 20 årig
Avatar billede mccannon Nybegynder
25. september 2002 - 00:15 #6
okay, det er jeg for træt til at overskue hvor man gør lige nu...sorry
Avatar billede klyde Nybegynder
25. september 2002 - 00:17 #7
det er ok vi ka se på det i morgen...
Avatar billede excession Nybegynder
25. september 2002 - 02:36 #8
her er 2 funktioner:

<%
'------- funktionen runder alderen ned ----

Function DiffADate(theDate)
  DiffADate = "alder: " & Int(DateDiff("m", theDate, Date) / 12)
End Function


'---- hvis du vil have decimaler med skal functionen se således ud
'---- funktionen viser 1 decimal som kan ændres ved at skrive f.eks 4 for 4 decimaler

Function DiffinDate(theDate)
  DiffinDate = "alder: " & FormatNumber((DateDiff("m", theDate, Date) / 12), 1)
End Function

'---- her skriver du datoen ind eller henter en dato fra databasen
birthday = DateValue("25-07-1977")

alder1 = DiffADate(birthday)
alder2 = DiffinDate(birthday)

response.write alder1
response.write "<BR><BR>" & alder2
%>
Avatar billede eagleeye Praktikant
25. september 2002 - 08:53 #9
Jeg har dette script som udregner alderen på en person i år-måneder-dage du kan rette det til så det kun viser år..:


<%
sBirthdate = "04-01-1985"
dato = sBirthdate
years = Datediff ("yyyy",dato,date)
dato = dateAdd("yyyy",years,dato)
mounths = Datediff ("m",dato,date)
if mounths < 0 then
  dato = dateAdd("yyyy",-1,dato)
  mounths = Datediff ("m",dato,date)
  years = years - 1
end if
dato = dateAdd("m",mounths,dato)
days = Datediff ("d",dato,date)
if days < 0 then
  if mounths > 0 then
    mounths = mounths - 1
  else
    years = years - 1
    mounths = 11
  end if
  dato = dateAdd("m",-1,dato)
  days = Datediff ("d",dato,date)
end if
dinStr = years & " år " & mounths & " måneder " & days & " dage"

Response.Write dinStr
%>
Avatar billede koldy Nybegynder
26. september 2002 - 02:27 #10
hvorfor ikke bruge DateDiff ?

Funktion Age(birthday)
Age = DateDiff("yyyy", birthday, now)
End Funktion

sBirthday = CDate("04-01 1985")
Response.Write Age(sBirthday)
Avatar billede koldy Nybegynder
26. september 2002 - 02:29 #11
Woups kom hvis til at fordanske det.. :)

Function Age(birthday)
Age = DateDiff("yyyy", birthday, now)
End Function

sBirthday = CDate("04-01 1985")
Response.Write Age(sBirthday)
Avatar billede eagleeye Praktikant
26. september 2002 - 16:16 #12
DateDiff returne forskellen mellem 1985 og 2002 (2002-1985) uden at kigge på månde og dage så det svare til man har fødselsdag den 1 januar..
Avatar billede klyde Nybegynder
04. februar 2003 - 00:29 #13
Undskyld ventetiden, jeg havde glemt dette sprøgsmål...
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