Avatar billede Meggel Novice
29. marts 2004 - 12:10 Der er 10 kommentarer og
1 løsning

regner alder ud.

jeg har dette lille script som regner ens alder ud efter den dato man har skrevet ind. men mit problem er at hvis nogle de fx skriver 11-10-1986 ind så bliver det lavet om til 11-0-1986 nogle der kan sige mig hvorfor ?

<%
FUNCTION Alder(argDato)
Alder = DateDiff("yyyy", argDato, Date())
IF DateAdd("yyyy",Alder,argDato) > Now THEN
Alder = Alder - 1
END IF
END FUNCTION
%>

<% response.Write "Alder: "&alder(rs1("fd")) &" år.<br>"&rs1("fd")&"<br><br>" %>

og feltet i databasen som hedder FD er tekst
Avatar billede dr-data Nybegynder
29. marts 2004 - 12:26 #1
jeg kan ikke se noget galt med ovenstående, mon ikke det er fordi du bruger noget med left()/right() ?
Avatar billede Meggel Novice
29. marts 2004 - 12:33 #2
<% if request.Form("updateprofil") <> "" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Database/brugerdatabasen.mdb")
Conn.Open DSN
sql = "UPDATE Tuser set fornavn = '"&request.form("fornavn")&"', efternavn = '"&request.form("efternavn")&"', fd = '"&request.form("d")&"-"&request.form("m")&"-"&request.form("aar")&"', by1 = '"&request.form("by")&"', mail = '"&request.Form("mail")&"', info = '"&request.Form("info1")&"' where FBruger = '" & session("loginoki") & "'"
set rs = conn.execute(sql)
set rs = nothing
response.Redirect("default.asp?id=bruger1&bruger="&session("loginoki")&"")
end if
%>

dette script sætte det ind i databasen..
Avatar billede nute Nybegynder
29. marts 2004 - 12:34 #3
prøv at sende dato med som Dato type, ikke som en streng:

alder( CDate( rs1("fd") ) )

en ting jeg ikke forstår er hvorfor du først finder differencen mellem fødselsdato, og derefter lægger differencen til fødselsdato ?!?! why ??
Avatar billede Meggel Novice
29. marts 2004 - 12:36 #4
nute hva mener du ? med:

en ting jeg ikke forstår er hvorfor du først finder differencen mellem fødselsdato, og derefter lægger differencen til fødselsdato ?!?! why ??
Avatar billede nute Nybegynder
29. marts 2004 - 12:43 #5
FUNCTION Alder(argDato)
' Denne linie finder antal år mellem f.dag og indeværende år
Alder = DateDiff("yyyy", argDato, Date())
' Denne linie lægger 'Alder' (antal år fra forrige linie) til f.dag
IF DateAdd("yyyy",Alder,argDato) > Now THEN
Alder = Alder - 1
END IF
END FUNCTION

hvis du kalder denne funktion med en dato fra 1975, så kan funktionen læses sådan:

function Alder( datoFra1975 )
    alder = indeværendeÅr - 1975 = 29
    if( alderFra1975 + 29 > 2004 ) then
        alder = 29 - 1
    end if
end function

dette fatter jeg ikke :-|
Avatar billede nute Nybegynder
29. marts 2004 - 12:44 #6
denne linie:

if( alderFra1975 + 29 > 2004 ) then

skulle så være

if( 1975 + 29 > 2004 ) then

/nute
Avatar billede Meggel Novice
29. marts 2004 - 12:49 #7
altså det var et script som en ven havde.. som jeg fik..
Avatar billede nute Nybegynder
29. marts 2004 - 12:56 #8
det er da sådan set ligegyldig ... det er dig der bruger det, og så må du da vide hvad funktionen laver ( specielt når du stiller et spm om det ) ;o]

du skriver " hvis nogle de fx skriver 11-10-1986 ind så bliver det lavet om til 11-0-1986". hvor bliver det "lavet om til 11-0-1986" ? er det i databasen det bliver gemt forkert, eller er det når du hiver data ud fra databasen det bliver forkert ? Den function du har postet vil ikke ændre noget på en dato

/nute
Avatar billede Meggel Novice
29. marts 2004 - 13:00 #9
altså det er i databasen det bliver lavet om.. selv om jeg skriver det ind rigtigt.. og jeg er sikker på den skriver det rigtig ind..
Avatar billede Meggel Novice
29. marts 2004 - 13:00 #10
men nu har jeg prøvet at slette FD og lave en ny med samme navn og det ser ud til at virke..
Avatar billede nute Nybegynder
29. marts 2004 - 13:05 #11
hvis det er i databasen det bliver lavet om, så bør du hvertfald poste rigtig kode ;o]
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