Avatar billede djmoose Nybegynder
31. januar 2005 - 15:33 Der er 11 kommentarer og
2 løsninger

Udregne alder automatisk

Jeg søger en kode der kan regne min alder ud. Jeg skriver på en hjemmeside at mit barn er 1 år, men når barnet så fylder år glemmer jeg at rette det. Kan man udfylde en kode, hvor man indtaster fødselsdagen og så trækker den det selv fra dags dato.

Så npr hun fylder fødselsdag d. 21.02.05 bliver teksten 1 år rettet til 2 år, uden jeg skal gøre noget.
Avatar billede fennec Nybegynder
31. januar 2005 - 15:40 #1
Noget i denne stil (ikke testet):

<%
birth = "09-05-1979"
aar = datediff("yyyy",birth,date)
temp = dateadd("yyyy",aar,birth)
if datediff("d",temp,birth)<0 then aar = aar - 1
response.write aar
%>
Avatar billede lorentsnv Nybegynder
31. januar 2005 - 15:45 #2
Bruger selv denne funktion til det samme, som også giver antal måneder frem til 8 år:

Function CalculateYears(sDate)
Dim nMaaneder, nYears, sReturnVal
nMaaneder = Int(DateDiff("m", DateValue(sDate), Date, Now))
nYears = int(nMaaneder/12)
if nYears = 0 then
        CalculateYears = CStr(nMaaneder - (nYears * 12)) + " mnd."    
else
        CalculateYears = Cstr(nYears) + " år"
    If month(sDate) <> month(Now) or day(sDate) <> day(now) then
            If nYears < 8 then CalculateYears = CalculateYears + " og "  + CStr(nMaaneder - (nYears * 12)) + " mnd."
            If nYears > 20 then CalculateYears = ""
    Else
            If nYears <= 20 then
                CalculateYears = CalculateYears + " i dag!! <IMG SRC='images/Flag_dk1.gif' WIDTH='24' HEIGHT='16' BORDER='0' ALT='Dansk flag'>"
            Else
                CalculateYears = "- Fødselsdag i dag!! <IMG SRC='images/Flag_dk1.gif' WIDTH='24' HEIGHT='16' BORDER='0' ALT='Dansk flag'>"
            End If
    End If
end if
End Function
Avatar billede fennec Nybegynder
31. januar 2005 - 15:47 #3
Der var lige en fejl i mit script :o)

birth = "01-01-1979"
aar = datediff("yyyy",birth,date)
temp = dateadd("yyyy",aar,birth)
Response.write birth
if datediff("d",temp,date)<0 then aar = aar - 1
response.write aar
Avatar billede lorentsnv Nybegynder
31. januar 2005 - 15:51 #4
Lidt forklaring til scriptet.
Scriptet bruges bl.a. til at sette et flagg ved siden af alderen (skal så legge et bilde med navnet Flag_dk1.gif i en undermapper med navn images) , hvids der er fødselsdag. Samtidig vises alter som år og måndere frem til 8 år, og alder vises ikke over 20 år. Det kan selvfølgelig tilpasses som ønsket.
Avatar billede lorentsnv Nybegynder
31. januar 2005 - 15:59 #5
HTML-kode hvor scriptet bliver brugt:
<br>Barn1xxxxxxxx - <%Response.Write(CalculateYears("2003-11-01"))%>
<br>Barn2xxxxxxxx - <%Response.Write(CalculateYears("2000-09-01"))%>
Avatar billede cpufan Juniormester
31. januar 2005 - 17:15 #6
lidt ala fennec's, tidligere lavet af arne v

<%
d = "13-02-1986"
agey = DateDiff("yyyy", d, Now())
If DatePart("y", d) > DatePart("y", Now()) Then
  agey = agey - 1
End If
Response.Write CStr(agey)
%>
Avatar billede djmoose Nybegynder
31. januar 2005 - 19:08 #7
Den nederste CPUFAN hvorfor skriver den ingenting. Siden er bare blank, skal man skrive yderligere end kode.
Avatar billede cpufan Juniormester
31. januar 2005 - 19:42 #8
i min browser skriver den

18
Avatar billede cpufan Juniormester
31. januar 2005 - 19:44 #9
har du et link?
Avatar billede djmoose Nybegynder
31. januar 2005 - 19:50 #10
Avatar billede cpufan Juniormester
31. januar 2005 - 19:53 #11
øhm,
du skal gemme det som en asp fil:

test.asp
Avatar billede djmoose Nybegynder
31. januar 2005 - 19:57 #12
OK, og der hvor jeg sætte koden ind, der angiver den alderen? Skriv som svar
Avatar billede cpufan Juniormester
31. januar 2005 - 20:03 #13
<%
d = "13-02-1986" ' skriv fødselsdagen her
agey = DateDiff("yyyy", d, Now())
If DatePart("y", d) > DatePart("y", Now()) Then
  agey = agey - 1
End If
Response.Write CStr(agey)
%>

og sæt koden ind der hvor du vil have alderen skrevet,

eller endnu bedre:

sæt dette i toppen af siden:

<%
session.lcid 0 1030
d = "13-02-1986" ' indsæt fødseldagen her
agey = DateDiff("yyyy", d, Now())
If DatePart("y", d) > DatePart("y", Now()) Then
  agey = agey - 1
End If
'Response.Write CStr(agey)
alder = Cstr(agey)
%>

og så der hvor du vil have alderen sætter du blot dette ind:

<%=alder%>
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