hur ska jag göra för att räkna ut hur gammal en person är... tex om man skirver in 830101-1234 så vill jag veta hur gammal den person är Klistra in en textbox i en form och en commandbutton... Ja om man vill optimera..... så kanske detta skulle sitta fint. hmm... nära att det fungerade.. det första exemplet du gjorde... men den räknar inte ut exakt hur gammal man är... Det här kanske hjälper: Svin bra... fungerar perfekt... tack så jätte mycket, nu gäller det bara att förstå koden också...hur kan man räkna ut ålder?
typ: date$ - personnummer 'eller nått
jag vill oxå kunna räkna ut åldern även om man inte skriver in hela personnummret man kanske bara skrivit 8301 som person nummer då vill jag att den ska visa att åldern är 18år...
några tips på hur jag kan göra detta??
tack på förhandSv: hur kan man räkna ut ålder?
Samt koden nedan.
Jag gör inget anspråk på att koden jag angivit är den snabbaste eller den bästa det är bara ett sätt att lösa det på...................................
Du kommer säkert få fler andra tips på hur du skall gå tillväga........
OBSERVERA att detta funkar för personnummer.. Man kan säkert göra så att det går att använda flera olika sorters datum, men detta lämnar jag till de som vill fixxa med detta
=============================================
Private Sub Command1_Click()
Dim d As String
Dim datum As Date
d = Text1.Text
d = Mid(d, 1, 2) & "-" & Mid(d, 3, 2) & "-" & Mid(d, 5, 2)
datum = Format(d, "Short Date")
'Och lite testutskrifter bara
Debug.Print DateDiff("yyyy", datum, Date) & " År"
Debug.Print DateDiff("q", datum, Date) & " Kvartal"
Debug.Print DateDiff("m", datum, Date) & " Månader"
Debug.Print DateDiff("d", datum, Date) & " Dagar"
Debug.Print DateDiff("ww", datum, Date) & " Veckor"
Debug.Print DateDiff("h", datum, Date) & " timmar"
Debug.Print DateDiff("n", datum, Date) & " Minuter"
Debug.Print DateDiff("s", datum, Date) & " Sekunder"
End Sub
/peterhSv: hur kan man räkna ut ålder?
Private Sub Command1_Click()
'Och lite testutskrifter bara
Debug.Print DateDiff("yyyy", Format(Format(Text1.Text, "##-##-##"), "short date"), Date) & " År"
End Sub
Men inte för att den är lätt att förstå....
/peterh
PS. (Är Andreas Hellkvist glad nu ???? ) ;)Sv: hur kan man räkna ut ålder?
tex om man skriver in 830317 så står det att man är 18år inte 17år som det borde stå...
sen det andra exemplet som du skrev det fungerade inte alls :(
tack ändå... men det vore bra om det gick att lösaSv: hur kan man räkna ut ålder?
'* Text1 = Personnummer
'* Text2 = Ålder
'* Command1 = Beräkna
Private Sub Command1_Click()
Text2 = AgeFromPN(Text1)
End Sub
Public Function AgeFromPN(PersonNr As String) As Integer
Dim BirthDate As Date
If PersonNr Like "####" Then
BirthDate = Format$(PersonNr + "01", "##/##/##")
AgeFromPN = GetAge(BirthDate, Format$(Date, "yyyy/mm/01"))
ElseIf PersonNr Like "######" Then
BirthDate = Format$(PersonNr, "##/##/##")
AgeFromPN = GetAge(BirthDate)
ElseIf PersonNr Like "######-####" Then
BirthDate = Format$(Left(PersonNr, 6), "##/##/##")
AgeFromPN = GetAge(BirthDate)
Else
MsgBox "Ogiltligt personnummer!", vbExclamation
End If
End Function
Public Function GetAge(BirthDate As Date, Optional CompareTo As Date) As Integer
Dim tmpDate As Date
Dim Diff As Long
If CompareTo Then
Diff = DateDiff("yyyy", BirthDate, CompareTo)
tmpDate = DateAdd("yyyy", -Diff, CompareTo)
If tmpDate < BirthDate Then
GetAge = Diff - 1
Else
GetAge = Diff
End If
Else
GetAge = GetAge(BirthDate, Date)
End If
End FunctionSv: hur kan man räkna ut ålder?
tack än en gång! :))