Bestimmte Gegenstände in einer bestimmten Tageszeit ändern

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Bestimmte Gegenstände in einer bestimmten Tageszeit ändern

    Hallo

    Wie kann ich ein Element der Form in einer bestimmten Tageszeit ändern lassen?
    Das sollte so ablaufen:
    zb. Sonne soll von 07:00:00 Uhr bis 17:59:59 Uhr erscheinen und der Mond soll dann von 18:00:00 Uhr bis 06:59:59 Uhr erscheinen und immer weiter so.

    Brauche mal bei sowas hilfe hatte nähmlich son genialen einfall für meinen rechner gehabt^^

    Hoffe auf hilfe
    danke schonmal
    Gruß
    Hi hab mir mal vor langer Zeit was gebastelt damit kannst du dein vorhaben umsetzen wenn du es ein wenig umschreibst.

    VB.NET-Quellcode

    1. If TimeOfDay >= "00:01:00" AndAlso TimeOfDay <= "08:00:00" Then
    2. Me.Text = ("Guten Morgen " & Environ("USERNAME"))
    3. ElseIf TimeOfDay >= "08:00:00" AndAlso TimeOfDay <= "12:00:00" Then
    4. Me.Text = ("Guten Vormittag " & Environ("USERNAME"))
    5. ElseIf TimeOfDay >= "12:00:00" AndAlso TimeOfDay <= "14:00:00" Then
    6. Me.Text = ("Mittag " & Environ("USERNAME"))
    7. ElseIf TimeOfDay >= "14:00:00" AndAlso TimeOfDay <= "18:00:00" Then
    8. Me.Text = ("Guten Nachmittag " & Environ("USERNAME"))
    9. ElseIf TimeOfDay >= "18:00:00" AndAlso TimeOfDay <= "23:59:00" Then
    10. Me.Text = ("Guten Abend " & Environ("USERNAME"))
    11. End If


    PS. Select Case würde ich jetzt verwenden statt den ganzen ElseIf's


    MFG
    GOOGLE ist mein Meister :)
    Hallo!

    Den Code von Bady müsstest du noch in einen Timer packen und in einem Interval checken.

    Ein kleiner Fehler (läuft aber trotzdem), befindet sich in badys Besipiel:

    Es wird auf Uhrzeit <= und im nächsten if auf >= geprüft, das = dürfte aber streng genommen nur einmal geprüft werden!
    ok ich habs soweit für meine verwendung zusammengecodet
    da wo er guten morgen und so sagt hab ich dann jez das eingegeben was ich benötigte:

    VB.NET-Quellcode

    1. If TimeOfDay >= "18:00:00" AndAlso TimeOfDay <= "06:59:59" Then
    2. 'Nacht
    3. Me.BackgroundImage = My.Resources.moon
    4. ElseIf TimeOfDay >= "07:00:00" AndAlso TimeOfDay <= "17:59:59" Then
    5. 'Tag
    6. Me.BackgroundImage = My.Resources.sun
    7. End If

    aber wenn ich dann 18:00 uhr hab bleibt die sonne

    gruß
    Es soll ja im zeitraum von 07:00:00 - 17:59:59 und dazwischen passieren und das gleiche bei Mond also nacht zwischen 18:00:00 und 06:59:59
    also so das zwischen den angaben auch aktualisiert wird und so das er nach dem erkennen von 17:59:59 sofort dann den mond hervorhebt

    gruß
    Warum dann nich so? (im Grunde wie picoflop sagte)

    VB.NET-Quellcode

    1. If TimeOfDay >= Convert.ToDateTime("07:00:00") AndAlso TimeOfDay <= Convert.ToDateTime("17:59:59") Then
    2. 'Tag
    3. Me.BackgroundImage = My.Resources.sun
    4. Else
    5. 'Nacht
    6. Me.BackgroundImage = My.Resources.moon
    7. End If

    Wenn nicht Tag ist, sollte es eigentlich Nacht sein. :D
    Außerdem solltest du mit Strict On arbeiten. Denn String geht eigentlich nicht implizit in DateTime zu konvertieren. Oder nimm statt String gleich DateTime-Format.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    @samus:

    Samus Aran schrieb:

    Oder häng .tostring hinten dran.
    Hast du das ernst gemeint?
    If TimeOfDay >= "07:00:00".tostring ?? :thumbdown: oder wo soll er .toString anhängen?
    Was soll der Sch... Wozu die aktuelle Zeit oder die Sollzeit in einen String wandeln, um Sie dann miteinander zu vergleichen. Das ist UNFUG ! :cursing:
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    VB.NET-Quellcode

    1. Dim gruss As String = ""
    2. Select Case CInt(TimeOfDay.Hour)
    3. Case 0 To 7 : gruss = "Guten Morgen"
    4. Case 8 To 11 : gruss = "Guten Vormittag"
    5. Case 12 To 13 : gruss = "Mittag"
    6. Case 14 To 17 : gruss = "Guten Nachmittag"
    7. Case 18 To 23 : gruss = "Guten Abend"
    8. Case Else : gruss = "Hi"
    9. End Select
    10. Me.Text = gruss & " " & Environ("USERNAME")
    @der_Kurt: macht der code das denn auch wenn ich zwischen 0 und 7 das programm anmache?
    Also wenn ich das prog sagen wir mal um 5:00 Uhr anmache sagt das Prog das dann auch?

    Natürlich soll er das ToString hinter die Klammer setzen

    wie muss dass den aussehen und wohin soll ich das setzen?

    Gruß

    @der_Kurt: macht der code das denn auch wenn ich zwischen 0 und 7 das programm anmache?
    Also wenn ich das prog sagen wir mal um 5:00 Uhr anmache sagt das Prog das dann auch?

    Machen diese paar Zeilen (...oder das Testen derselben) wirklich solche Probleme?


    Natürlich soll er das ToString hinter die Klammer setzen
    wie muss dass den aussehen und wohin soll ich das setzen?

    Selbe Frage von mir...

    Tostring hinter die Klammer -->

    VB.NET-Quellcode

    1. ...).ToString
    ok mach ich

    EDIT:
    habs geschafft der code für meine verwendung lautet:

    VB.NET-Quellcode

    1. Select Case CInt(TimeOfDay.Hour)
    2. Case 7 To 18 : Me.BackgroundImage = My.Resources.sun
    3. Case 18 To 23 : Me.BackgroundImage = My.Resources.moon
    4. Case 0 To 7 : Me.BackgroundImage = My.Resources.moon
    5. End Select


    jetzt gibts aber eine frage noch: Wie mach ich das das Programm jez die Bilder Aktualisiert bei der angegebenen zeit?
    Ich habs mal ausproboert und die uhr auf 06:59 gestellt und dann war 7 Uhr und da war dann immernoch der mond

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Shaymin123[CRI09]“ ()

    Hast du das auch in ein Timer gepackt? Damit der Code alle paar Minuten ausgeführt wird? Wenn du das nur im Form Load oder Button Click Event gepackt hast bringt das natürlich nicht viel, der Code zum Prüfen muss natürlich kontinuierlich ausgeführt werden.
    Und am besten prüfst du dabei noch ob das Bild bereits zugeordnet ist und nicht jedesmal wenn der Timer Tickt und es noch zwischen 7 und 18 uhr ist das Bild Sun zugeordnet wird, das ja schwachsinnig. Bedenke aber dass du Bilder nicht einfach so vergleichen kannst

    VB.NET-Quellcode

    1. If Me.BackgroundImage = My.Resources.sun Then


    funktioniert nicht, nur dass das gleich klargestellt ist. Entweder machst du noch eine Variable in der du was Speicherst oder ein richtigen Bildervergleich. Wobei das mti der Variablen für deinen Kenntnissstand wohl das einfachste währe.