TimeOfDay im Stil: 00:00:00

  • VB.NET
  • .NET (FX) 4.0

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    TimeOfDay im Stil: 00:00:00

    Hi Leute,

    Ich brauche mal wieder eure Hilfe :/ ...
    Ich will einen Wecker erstellen und habe dazu 3 Label erstellt:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    3. Label1.Text = TimeOfDay.Hour
    4. Label2.Text = TimeOfDay.Minute
    5. Label3.Text = TimeOfDay.Second
    6. End Sub
    7. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    8. Timer1.Start()
    9. End Sub
    10. End Class


    Alles funktioniert soweit, doch werden die Stunden, Minuten und Sekunde bei Zahlen unter 10 so gezeigt:

    z.B: 5 statt 05 (wie ich es haben will... :S )
    Könntet ihr mir sagen wie das geht... :?:

    Edit by ~blaze~:
    *Thema aus Tipps&Tricks/Allgemeines verschoben*

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

    VB.NET-Quellcode

    1. Date.Today.Hour.ToString("00")


    edit: Dieser Mistige VB-Namespace. Den Fehler mache ich immer wieder. In meinen Tool hab ich den über die Eingenschaften entfernt. Daher unterläuft mir dieser Fehler da nicht mehr. [TimeOfDay entfernt.]
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Schamash“ ()

    Hey,

    Du solltest Dir angewöhnen, Sachen aus dem VisualBasic-NameSpace nicht zu verwenden. TimeOfDay ist so ein Konstrukt aus diesem NameSpace. Als nächsten Schritt solltest Du OPTION STRICT auf ON stellen und lieber DateTime verwenden. Nutze .ToString(), wenn Du Zahlen dargestellt haben möchtest. Hier kannst Du auch ein Format angeben, um beispielsweise einen einstelligen Wert mit führender 0 zu erzeugen. .ToString("00").
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Ich habe jetzt folgenden Code:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    4. Label1.Text = Date.Today.Hour.ToString("00")
    5. Label2.Text = Date.Today.Minute.ToString("00")
    6. Label3.Text = Date.Today.Second.ToString("00")
    7. End Sub
    8. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    9. Timer1.Start()
    10. End Sub
    11. End Class


    Aber nun bleiben die Label(s) auf so wie ich sie in Name benannt habe
    Kein wunder. Date.Today liefert "10.05.2014 00:00:00" also das Datum mit der mindest möglichen Uhrzeit, deshalb ist alles 00. Für die Aktuelle Zeit nutze Date.Now.

    VB.NET-Quellcode

    1. Label1.Text = Date.Now.ToString("HH")
    2. Label2.Text = Date.Now.ToString("mm")
    3. Label3.Text = Date.Now.ToString("ss")

    Hast du vor mit den LabelTexten vergleiche anzustellen?
    Das liegt daran, dass in der .Today-Property nur das Datum vorgehalten wird, keine Uhrzeit. Nutze .DateTime.Now.Hour.... oder Date.Now.Hour......
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    Artentus schrieb:

    Es ist sinnlos, dafür drei Label zu verwenden,


    Das musst du mir erklären.
    Ich weiß nicht wie das Programm des TE aussieht und ob die Zeit in einem Label angezeigt werden kann.
    Vielleicht stehen die Label ja untereinander.
    z.B.
    15 Uhr
    17 Minuten
    32 Sekunden
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    @Artentus Jou
    @Gesuchter Vielleicht noch ein anderer Format-String:

    VB.NET-Quellcode

    1. Label1.Text = DateTime.Now.ToLongTimeString
    Und:
    Ruf DateTime.Now nur ein Mal pro Abfrage auf, es könnte zwischen mehreren Abfragen ein Minuten- oder Stundenwechsel auftreten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!