Alter aus Datum berechnen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Lupus.

    Alter aus Datum berechnen

    Guten Morgen/Mittag ;)
    Also, 2 Fragen:

    Ich habe ein ein Geburtstag als String:

    VB.NET-Quellcode

    1. Dim GB as String = "18.03.1992"


    1. Wie reche ich damit das Alter aus?
    2. Wie erfahre ich, ob z.B Heute der Geburtstag ist?

    MfG Chris.
    Ater ist die Differenz der Jahre vom heutigem Datum und dem Geburtstagsdatum.
    Heute ist dann der Geburtstag, wenn der Monat vom heutigem Datum mit dem Monat des Geburttagsdatum übereinstimmt UND gleichzeitig der Tag vom heutigem Datum mit dem Monat des Geburttagsdatum übereinstimmt.

    VB.NET-Quellcode

    1. Sub GT()
    2. Dim GTag As Date = TextBox1.Text '"18.03.1992"
    3. Dim Alter As String
    4. Dim JANEIN As String
    5. Alter = Now.Year - GTag.Year
    6. Console.WriteLine("Alter =" & Alter)
    7. If Now.Month = GTag.Month And Now.Day = GTag.Day Then
    8. JANEIN = "Heute ist Dein GeburtsTag"
    9. Else
    10. JANEIN = "Heute ist NICHT Dein GeburtsTag"
    11. End If
    12. Console.WriteLine(JANEIN)
    13. End Sub
    14. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    15. Call GT()
    16. End Sub


    Gruss
    @AliBaba:
    deine Methode das alter auszurechnen ist leider nicht so genau. für dein code bin ich schon ein jahr älter, wenn das neue jahr angebrochen ist.

    ich hab mal eine verbesserte version geschrieben. fehler wird auch abgefangen, falls kein richtiges datum eingegeben wurde.

    VB.NET-Quellcode

    1. Dim geburtstag As Date
    2. Try
    3. geburtstag = TextBox1.Text
    4. Catch ex As Exception
    5. MsgBox("Bitte geben Sie ein gültiges Datumformat ein!", MsgBoxStyle.Information)
    6. Exit Sub
    7. End Try
    8. Dim alter As Integer = Int(DateDiff(DateInterval.Day, geburtstag, Now) / 365)
    9. Dim geburtstagskind As Boolean
    10. If Now.Day = geburtstag.Day And Now.Month = geburtstag.Month Then _
    11. geburtstagskind = True
    12. If geburtstagskind Then
    13. MsgBox("Herzlichen Glückwunsch zum " & alter & ". Geburtstag!", MsgBoxStyle.Information)
    14. Else
    15. MsgBox("Sie sind " & alter & " alt!", MsgBoxStyle.Information)
    16. End If
    also ich hab mal von vorne angefangen und das gebastelt, das bei mir auch funktioniert:

    VB.NET-Quellcode

    1. Dim a As New Date(2000, 9, 24)
    2. If a.Month = Now.Month And a.Day = Now.Day Then
    3. MessageBox.Show("Herzlichen Glückwunsch zum " + DateDiff(DateInterval.Year, a, Now).ToString + " Geburtstag!")
    4. End If

    vG,
    Lupus

    Edit: Ach ja, das Datum a ist natürlich nur ein Beispiel, damit es heute auch funktioniert!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lupus“ ()

    Ja nun.
    Die Leute, die am 29.02.XXXX Geburtstag haben...
    Entweder feiern sie alle 4 Jahre ein Mal Geburtstag und altern nur um ein Jahr(!) oder entscheiden sich in den restlichen Jahren für z.B. 28.02 oder 01.03 als Geburtstag und altern jedes Jahr um ein Jahr.

    Gruss
    na dann, wenn du jemanden kennst der am 29.2. Geburtstag hat... :D

    VB.NET-Quellcode

    1. Dim a As New Date(2000, 9, 24), SJ As Boolean = False
    2. If a.Day = 29 And a.Month = 2 Then
    3. If Not Date.IsLeapYear(Now.Year) And Now.Day = 1 And Now.Month = 3 Then
    4. SJ = True
    5. End If
    6. End If
    7. If (a.Month = Now.Month And a.Day = Now.Day) Or SJ = True Then
    8. MessageBox.Show("Herzlichen Glückwunsch zum " + DateDiff(DateInterval.Year, a, Now).ToString + " Geburtstag!")
    9. End If

    vG,
    Lupus

    Ach ja, der Edit war nur nen schreibfehler :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lupus“ ()