Wochentag berechnen

  • VB6

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von SirBenX.

    Wochentag berechnen

    Hi
    Ich wollte mir die Wochentage anzeigen lassen, wenn ich das Datum eingebe. Aber das funzt nicht, könnt ihr mir sagen wo der Fehler liegt? Später will ich daraus meinen Bus anzeigen lassen wenn man Datum und Uhrzeit eingibt. Naja egal(nur zur erläuterung)
    Für Hilfe wär ich echt dankbar!


    Dim Monatstage As Long, Monat As Long, Tage As Long, Quotient As Long, Produkt As Long, Rest As Long, AnzahlTage As Long

    Private Sub cmd_Ende_Click()
    End
    End Sub

    Private Sub cmd_Loeschen_Click()
    txt_Tag = ""
    txt_Monat = ""
    txt_Jahr = ""
    lbl_Wochentag = ""
    lbl_Datum = ""
    lbl_Quotient = ""
    lbl_Produkt = ""
    lbl_Rest = ""
    End Sub

    Private Sub cmd_Ok_Click()

    If txt_Monat < 1 Or txt_Monat > 12 Or txt_Tag < 1 Or txt_Tag > 31 Then
    If txt_Tag < 1 Or txt_Tag > 31 Then MsgBox "Falsche Einagbe! Bitte geben Sie einen Tag zwischen 1 und 31 ein", vbOKOnly
    If txt_Monat < 1 Or txt_Monat > 12 Then MsgBox "Falsche Eingabe! Sie müssen einen Monat zwischen 1 und 12 eingeben", vbOKOnly
    Else
    If txt_Monat = 1 Then Monatstage = 31
    If txt_Monat = 2 Then Monatstage = 29
    If txt_Monat = 3 Then Monatstage = 31
    If txt_Monat = 4 Then Monatstage = 30
    If txt_Monat = 5 Then Monatstage = 31
    If txt_Monat = 6 Then Monatstage = 30
    If txt_Monat = 7 Then Monatstage = 31
    If txt_Monat = 8 Then Monatstage = 31
    If txt_Monat = 9 Then Monatstage = 30
    If txt_Monat = 10 Then Monatstage = 31
    If txt_Monat = 11 Then Monatstage = 30
    If txt_Monat = 12 Then Monatstage = 31

    If txt_Tag > Monatstage Then
    MsgBox "Der Monat hat nur " & Monatstage & " Tage! Geben Sie den Tag neu ein!", vbOKOnly
    Else
    lbl_Datum = txt_Tag & "." & txt_Monat & "." & txt_Jahr
    txt_Tag.Text = Tage
    txt_Monat.Text = Monat
    If txt_Monat = 1 Then <font color="red"> (Hier muss der fehler irgendwo sein, hab alle möglichkeiten durch genommen, hab kein plan was noch falsch ist ) </font>
    Quotient = Tage / 7
    Produkt = Tage * Quotient
    Rest = Tage - Produkt
    lbl_Quotient = Quotient
    lbl_Produkt = Produkt
    lbl_Rest = "Rest"
    End If
    If Monat = 2 Then
    Tage = Tage + 31
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 3 Then
    Tage = Tage + 60
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 4 Then
    Tage = Tage + 91
    Quotient = Tage / 7
    Produkt = Tage * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 5 Then
    Tage = Tage + 121
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 6 Then
    Tage = Tage + 152
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 7 Then
    Tage = Tage + 182
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 8 Then
    Tage = Tage + 213
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 9 Then
    Tage = Tage + 244
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 10 Then
    Tage = Tage + 274
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 11 Then
    Tage = Tage + 305
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Monat = 12 Then
    Tage = Tage + 355
    Quotient = Tage / 7
    Produkt = 7 * Quotient
    Rest = Tage - Produkt
    End If
    If Rest = 0 Then lbl_Wochentag = "Donnerstag"
    If Rest = 1 Then lbl_Wochentag = "Freitag"
    If Rest = 2 Then lbl_Wochentag = "Samstag"
    If Rest = 3 Then lbl_Wochentag = "Sonntag"
    If Rest = 4 Then lbl_Wochentag = "Montag"
    If Rest = 5 Then lbl_Wochentag = "Dienstag"
    If Rest = 6 Then lbl_Wochentag = "Mittwoch"
    lbl_Quotient.Caption = Quotient
    lbl_Produkt.Caption = Produkt
    lbl_Rest.Caption = Rest


    End If

    End If

    End Sub

    <font color="red"> Edit by Agent: Titel "Fehler in Syntax" ist zu allgemein! -> geändert </font>

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

    Du brauchst den Wochentag nicht manuell berechnen, dafür gibts die Weekday -Funktion:
    <pre>Wochentag = Weekday("06.10.2004")
    if Wochentag=1 Then msgbox "Sonntag"
    if Wochentag=2 Then msgbox "Montag"
    if Wochentag=3 Then msgbox "Dienstag"
    if Wochentag=4 Then msgbox "Mittwoch"
    if Wochentag=5 Then msgbox "Donnerstag"
    if Wochentag=6 Then msgbox "Freitag"
    if Wochentag=7 Then msgbox "Samtag"</pre>
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau

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

    Wo dein Fehler genau liegt kann ich noch nicht sagen da ich deinen Code nur überflogen habe um ihn etwas nachzuvollziehen.
    wie kann ich denn mein Datum eingeben um die Funktion zu nutzen?

    <pre>Wochentag = Weekday(txt_Tag & "." & txt_Monat & "." & txt_Jahr)
    ...</pre>
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Ich hab mir deinen Code mal angesehen und hier einen Fehler gefunden:
    <pre>'...
    txt_Tag.Text = Tage
    txt_Monat.Text = Monat
    '...</pre>
    Der variable Tage und Monat wurden noch keine Werte zugewiesen und somit "0". Die Textfelder werden somit auch auf "0" gesetzt. Und deine ganzen If-Abfragen sind dann auch sinnlos, weil du die Zahlen 1 bis 12 abfragst, sie aber "0" sind.

    Das soll bestimmt so sein:
    <pre>Tage = txt_Tag.Text
    Monat = txt_Monat.Text</pre>
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau

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

    Hab das mal geändert. wenn ich als Tage 12 eingebe ist mein Quotient = 2 Obwohl er doch 1 sein müßte, Hab alle Variablen als Long deklariert. Rundet der dann auf??
    Aber egal. Ich werd wohl deine Lösung nehmen. Kannst du mir noch sagen wie ich die aktuelle Uhrzeit in meinem Programm anzeigen kann und wie ich die Uhrzeit eingeben kann ( Stunde und Minute) ?
    Danke
    Die aktuelle Zeit liefert die time -Funktion.
    wie ich die Uhrzeit eingeben kann ( Stunde und Minute) ?

    Was genau meinst du damit? ?(
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Für komfortable Datums- und Zeit-EIngaben gibt es den DateTimePicker, aber eine Normale Textbox reicht auch wobei du die Zeit dann mit isDate vorher testen solltest (CausesValidation)
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Ohh sorry dass mit der time funktion funzt, hab das nur in den Button gesetzt und nicht geklickt.

    Aber gibt es diese Funktion auch für das Datum??

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

    ja, "date"

    <font color="red"> BItte keine Doppelpostings, es gibt eine Editier-Funktion! </font>
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau

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

    z.B. indem du den Text in eine Zeit umwandelst mit cdate und dann kannst du die hour und minute-funktion benutzen:
    Stunde=hour(cdate(txt_Zeit))
    Minute=minute(cdate(txt_Zeit))
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Was hab ich hier falsch gemacht??


    Dim Zeit As Double, Minuten As Double, Stunde As Double
    Private Sub cmd_Ok_Click()
    Zeit = txt_Zeit.Text
    Minuten = Minute(CDate(Zeit))
    Stunde = Hour(CDate(Zeit))

    lbl_Ausgabe = Stunde & "----" & Minuten
    End Sub