Jag skall bara fråga en liten sak om uträkning av datum . Ett av mina käraste ämne. Hej SvenPon <code>Årtal
- När man skall köra gamla program så måste man ju ändra om någonting,
(även i VB) när man skall räkna imellan två olika sekel nu som det blir numera.
- Jag skickar med en kod som jag tog fram och funderar vad som ska ändras, för det
går att räkna imellan två datum på 2000-talet.
koden här:
Private Sub beräkna_knapp_Click()
Dim persdatum As String ' Personens födelsedag
Dim idag As String ' Dagens datum
Dim ålder As Integer ' Personens ålder i antalet år.
persdatum = Left$(personnummer_text.Text, 6)
' Plockar ut datumet ur personnummret, de 6 första tecknen 751001
idag = Left$(Now, 10)
' Plockar ut endast datumet 1995-09-06
datum_label.Caption = idag
idag = Mid$(idag, 3, 2) + Mid$(idag, 6, 2) + Mid$(idag, 9, 2)
' Gör om datumet 1995-09-06 till 950906
ålder = Val(Left$(idag, 2)) - Val(Left$(persdatum, 2)) - 1
' Gör om årtalen i datumen till tal och räknar skillnaden
If Val(Mid$(idag, 3, 4)) >= Val(Mid$(persdatum, 3, 4)) _
Then ålder = ålder + 1
Debug.Print Val(Mid$(idag, 3, 4)), Val(Mid$(persdatum, 3, 4))
' Gör om månad och dag till ett tal och jämför med det andra datumet.
' Om 906 är större eller lika med 1001 så ökas det på ett år.
ålder_label = Format$(ålder)
End Sub
mvh JaejoSv: Årtal
Testa att skriv Label1.Caption = Format$(1632 - 11 - 06, "dddd")Sv: Årtal
-Menar du att jag skall byta ut någon av dom Label
som ligger i programmet eller skall det läggas till fler,
För det finns ju 2 st lbl.boxar
ålder_label = Format$(ålder)
datum_label.Caption = idag
-För det blir lite konstiga svar när man skall räkna ut en ålder
skriver jag in ex.560506 i txtboxen så blir svaret -53 i ålder_label
men dagens datum blir rätt i datum_label.
-Men skriver jag in ex.020115 blir det 2 som det skall bli.
mvh JaejoSv: Årtal
Private Sub beräkna_knapp_Click()
Dim persdatum As Date
Dim idag As Date
Dim ålder As Integer
persdatum = CDate(Left$(personnummer_text.Text, 6))
idag = Now
datum_label.Caption = FormatDateTime(idag,vbShortDate)
ålder = DateDiff(persdatum,idag,"yyyy")
ålder_label = CStr(ålder)
End Sub
</code>
Lättare med Date-data-typen. Finns ett antal inbyggda funktioner för beräkningar med datum/tid.