webForumDet fria alternativet

Hjärnsläpp: Problem med automatisk åldersuträknare!

ASP

12 svar · 609 visningar · startad av Wickmark

Medlem sedan juli 2003162 inlägg
Frågan#1

Vad är egentligen fel med denna kod?

	         fdag = formatdatetime(fdag&"-"&fdag2&"-"&fdag3)
			 dagens_datum = date()
			 
			   if month(dagens_datum) < fdag2 Then
			    if day(fdag2) > dagens_datum then
			     alder = year(dagens_datum) - year(fdag)
				else
				 alder = year(dagens_datum) - year(fdag) - 1
				end if
			   elseif month(dagens_datum) > fdag2 then
			     alder = year(dagens_datum) - fdag - 1 
			   end if

fdag = år
fdag2 = månad
fdag3 = dag

Reslutatet blir (om födelsedatumen är: 88 05 08), alltid 14...

kanske är ngt uppenbart fel, men just nu är jag så trött efter att ha bråkat med ett segt javascript typ hela dagen :D

en stor :bire till den som fixar detta :D

Medlem sedan nov. 20017 144 inlägg
#2

Funkar det inte bara med att köra med detta då?:
DateDiff("y",fdag,date)/365.2375
Vad skall uträttas?

Medlem sedan juli 2003162 inlägg
#3

Jesper T skrev:

Funkar det inte bara med att köra med detta då?:
DateDiff("y",fdag,date)/365.2375
Vad skall uträttas?

Skriptet ska automatiskt räkna ut användarens ålder med hjälp av hans födelsedatum!

Medlem sedan juli 2003162 inlägg
#4

Wickmark skrev:

Jesper T skrev:

Funkar det inte bara med att köra med detta då?:
DateDiff("y",fdag,date)/365.2375
Vad skall uträttas?

Skriptet ska automatiskt räkna ut användarens ålder med hjälp av hans födelsedatum!

DateDiff("y",fdag,date)/365.2375

funkade inte!

För, man är ju inte femton, förren den dagen, på den månaden man föddes på!

Medlem sedan nov. 20017 144 inlägg
#5

Ser ut som en dj--la massa kod för det.

fdag = formatdatetime(fdag&"-"&fdag2&"-"&fdag3)
Response.write DateDiff("y",fdag,date)/365.2375

Borde väl räcka.

Medlem sedan juli 2003162 inlägg
#6

Jesper T skrev:

Ser ut som en dj--la massa kod för det.

fdag = formatdatetime(fdag&"-"&fdag2&"-"&fdag3)
Response.write DateDiff("y",fdag,date)/365.2375

Borde väl räcka.

Nope, funkade inte! Om jag sätter min födelsedag en månad efter denna, så är jag fortfarande 15 år! Det är dagarna som är problemet, i mitt skript ovanstående!

Medlem sedan jan. 20011 140 inlägg
#7

Jag hittade det här på aspsidan.
Den fungerar

<%
Function TaFramAlder(FodelseDatum)
    If isDate(FodelseDatum) Then
        TaFramAlder = DateDiff("yyyy", FodelseDatum, Date) + (DateSerial(Year(Date), Month(FodelseDatum), Day(FodelseDatum)) > Date)
    End If
End Function
%>
Sedan skriver du ut
<%
Response.Write "Du är " & TaFramAlder("1982-12-28") & " år gammal."
%>
Medlem sedan nov. 20017 144 inlägg
#8

Nu får du ta och kamma dig ;)
Detta: 88-09-21, ger resultatet: 15.0011978507136
Och detta: 88-09-22, ger resultatet: 14.9984599062254
Alltså, om jag är född den 22 september 1988 så är jag idag 14
men är jag född den 21 september 1988 så fyller jag 15 idag.

Medlem sedan juli 2003162 inlägg
#9

Ska testa följande funktion, så fort jag har fått bukt med... *suck* javascriptet:

	         fdag = formatdatetime(fdag&"-"&fdag2&"-"&fdag3)
			 
			if month(fdag) = month(date()) then
			  if day(date()) >= day(fdag) then
			    alder = year(date()) - year(fdag)
			  else
			    alder = year(date()) - year(fdag) - 1
			  end if
			elseif month(date()) > month(fdag) then
			  alder = year(date()) - year(fdag)
			elseif month(date()) < month(fdag) then
			  alder = year(date()) - year(fdag) - 1
			end if
Medlem sedan juli 2003162 inlägg
#10

Wickmark skrev:

Ska testa följande funktion, så fort jag har fått bukt med... *suck* javascriptet:

	         fdag = formatdatetime(fdag&"-"&fdag2&"-"&fdag3)
			 
			if month(fdag) = month(date()) then
			  if day(date()) >= day(fdag) then
			    alder = year(date()) - year(fdag)
			  else
			    alder = year(date()) - year(fdag) - 1
			  end if
			elseif month(date()) > month(fdag) then
			  alder = year(date()) - year(fdag)
			elseif month(date()) < month(fdag) then
			  alder = year(date()) - year(fdag) - 1
			end if

JA! DET FUNKADE :e !

Hurra!

Tack iaf för er hjälp!

Ang. javascriptet: Var tvungen att radera allt, för att testa om funktionen funkade :D

Medlem sedan juni 20019 519 inlägg
#11
<%Function Age(fdatum)
  Age = Left(DateDiff("m",cdate(fdatum),Date)/12,2)

  if right(Age, 1)="," Then
    Age = Left(Age, 2)
  End If
End Function%>

Kör denna ASP kod och fungera 100%

Medlem sedan mars 20015 287 inlägg
#12

voigtann1 vad gör eg. den där funktionen? Den kan inte vara riktigt rätt skriven.

Medlem sedan juni 20019 519 inlägg
#13

solbulle skrev:

voigtann1 vad gör eg. den där funktionen? Den kan inte vara riktigt rätt skriven.

Hmm.. det har du faktist rätt i... märkligt.. har använd den funktionen innan och då hade jag det resultatet jag hade velat men... ignoera mitt svar :e ska kolla igenom koden lite mer :e

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)