I en accessdatabas lagras info om medlemmar. Bland annat så lagras födelsedatumet i den. Ett datum som tillexempel: 19830624. testa detta: Dessa funktioner bör hjälpa till. Första gör om ditt värde till ett datum. Du bör lagra personens födelsedag som datum. Blir mycket enklare att hantera: hur skriver man ut värdet man fått fram då? Jag tolkar det som att du ska skriva: Skriver man: Det beror på att datediff avrundar till hela år skulle det ha vart efter personen ifrågas födelsedag på året så skulle det stämma.. Tror jag fått det att funka nu!!!Hur gammal är en person med hjälp av födelsedatum
Hur kan man skriva ut hur gammal just den medlemmen är? Det skall alltså i detta fall stå att han är 18 år på en sida.Sv: Hur gammal är en person med hjlp av födelsedatum
dim Pnr as integer * 6 '6 tecken
dim Age as string * 3
if mid(pnr,3,2) >= 1 and mid(pnr,3,2) <= 12 and mid(pnr,5,2) >= 1 and mid(pnr,5,2) <= 31 then
'då är dem korrekt..
age = datediff("y",Date,Pnr)
end ifSv: Hur gammal är en person med hjälp av födelsedatum
<code>
Function FixDate(Value)
Select Case Len(Value)
Case 6
FixDate = DateSerial(Left(Value, 2), Mid(Value, 3, 2), Right(Value, 2))
Case 8
FixDate = DateSerial(Left(Value, 4), Mid(Value, 5, 2), Right(Value, 2))
End Select
End Function
</code>
För att beräkna ålder kollar man antal år som skiljer födelsedatum mot dagens datum och om personen fyllt år i år:
<code>
Function Age(Value)
Dim Years
Years = DateDiff("yyyy", Value, Date)
If DateAdd("yyyy", Years, Value) < Date Then
Age = Years + 1
Else
Age = Years
End If
End Function
</code>Sv: Hur gammal är en person med hjälp av födelsedatum
Sv: Hur gammal är en person med hjälp av födelsedatum
response.write Age(FixDate(datum))
/JohanSv: Hur gammal är en person med hjälp av födelsedatum
response.write Age(FixDate(pnr))
så blir värdet hela 103...vilket är lite väl högt, det skall ju vara 18.
jag skrev följande (och fick värdet 19, men det skulle ju bli 18!!!):
pnr=RecSet("pnr")
Function FixDate(pnr)
Select Case Len(pnr)
Case 6
FixDate = DateSerial(Left(pnr, 2), Mid(pnr, 3, 2), Right(pnr, 2))
Case 8
FixDate = DateSerial(Left(pnr, 4), Mid(pnr, 5, 2), Right(pnr, 2))
End Select
End Function
'För att beräkna ålder kollar man antal år som skiljer födelsedatum mot dagens datum och om personen fyllt år i år:
Function Age(pnr)
Dim Years
Years = DateDiff("yyyy", pnr, Date)
If DateAdd("yyyy", Years, pnr) < Date Then
Age = Years + 1
Else
Age = Years
End If
End Function
response.write Age(FixDate(pnr))
...men det värde som skrevs ut blev alltså 19 och inte 18. Så vad är fel?Sv: Hur gammal är en person med hjälp av födelsedatum
/ErikSv: Hur gammal är en person med hjälp av födelsedatum
Tack skall ni ha!!!
Skrev följande:
pnr=RecSet("pnr")
Function FixDate(pnr)
Select Case Len(pnr)
Case 6
FixDate = DateSerial(Left(pnr, 2), Mid(pnr, 3, 2), Right(pnr, 2))
Case 8
FixDate = DateSerial(Left(pnr, 4), Mid(pnr, 5, 2), Right(pnr, 2))
End Select
End Function
'För att beräkna ålder kollar man antal år som skiljer födelsedatum mot dagens datum och om personen fyllt år i år:
Function Age(pnr)
Dim Years
Years = DateDiff("yyyy", pnr, Date)
If DateAdd("yyyy", years, pnr) < Date Then
Age = Years
Else
Age = Years -1
End If
End Function
response.write Age(FixDate(pnr))