I en föreningsmatrikel med 12-siffriga personnummer (yyyymmdd-nnnn) vill jag kunna plocka fram jämna födelsedagar.Konvertera personnummer till tidsformat
I första vändan skulle jag vilja få yyyymmdd-nnnn (inskrivet som ett textformat) att överföras till tidsformat yyyy-mm-dd.
I nästa vända skulle jag vilja addera år med ett tal, exempelvis yyyy+50, och få fram det datum på vilket personen fyller 50 år.
Tack/AnnikaSv: Konvertera personnummer till tidsformat
Function ToDate(PersonNo As String) As Date
Dim Y As String
Dim M As String
Dim D As String
If PersonNo Like "######-####" Or PersonNo Like "##########" Or PersonNo Like "######" Then
Y = Mid(PersonNo, 1, 2)
M = Mid(PersonNo, 3, 2)
D = Mid(PersonNo, 5, 2)
ToDate = CDate(Y & "-" & M & "-" & D)
ElseIf PersonNo Like "########-####" Or PersonNo Like "############" Or PersonNo Like "########" Then
Y = Mid(PersonNo, 1, 4)
M = Mid(PersonNo, 5, 2)
D = Mid(PersonNo, 7, 2)
ToDate = CDate(Y & "-" & M & "-" & D)
Else
Err.Raise vbObjectError, "ToDate", "Invalid PersonNo"
End If
End Function´
FiftyBirthDay = DateAdd("yyyy",50,ToDate("780101-0000"))