Announcement

Collapse
No announcement yet.

String formatieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • String formatieren

    Hallo!

    Kurze Frage: Ich hab drei String Variablen, die jeweils die Sekunden, MInuten und Stunden darstellen. Das Problem an der Sache ist, dass ich die Uhrzeit gern im Format hh:mm:ss anzeigen möchte.
    Das ist dann ein Problem, wenn bspw. die Sekunden einstellig sind, weil dann wird nur hh:mm:s angezeigt.

    Kann man irgendwie den String mit der Urzeit so formatieren, dass, sobald der Wert nur einstellig ist, automatisch eine 0 eingefügt wird?

    Danke und liebe Grüße

    enne

  • #2
    Hallo,

    zB
    Code:
    # Imports System
    #
    # Namespace ConsoleApplication1
    #     Class Program
    #         Private Shared Sub Main(ByVal args As String())
    #             Dim sekunden As String = "5"
    #             Dim minuten As String = "20"
    #             Dim stunden As String = "4"
    #            
    #             Console.WriteLine(GetZeit(stunden, minuten, sekunden))
    #             Console.ReadKey()
    #         End Sub
    #        
    #         Public Shared Function GetZeit(ByVal hh As String, ByVal mm As String, ByVal ss As String) As String
    #             Dim stunden As Integer = Integer.Parse(hh)
    #             Dim minuten As Integer = Integer.Parse(mm)
    #             Dim sekunden As Integer = Integer.Parse(ss)
    #            
    #             Dim ts As New TimeSpan(stunden, minuten, sekunden)
    #             Return ts.ToString()
    #         End Function
    #     End Class
    # End Namespace
    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Absolut perfekt, vielen Dank gfoidl

      lg enne

      Comment


      • #4
        Also, irgendwie finde ich den Umweg über TimeSpan zu kompliziert, wenn es nur darum geht, einen Integer als 2stellige Zahl auszugeben (zumindest verstehe ich die Orginalfrage so) ist es doch einfacher mit ToString("00") zu arbeiten. Oder noch einfacher, den Orginalstring mit PadLeft auf 2 Stellen "aufzupumpen"

        Gruß
        Martin

        Comment


        • #5
          Hallo,

          ja stimmt. ToString() hat keine Überladung um einen String so zu formatieren.

          .PadLeft(2, '0') funktioniert - (hab ich vergessen )
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment


          • #6
            Vielleicht reden (oder besser schreiben) wir momentan aneinander vorbei, aber stunden, minuten und sekunden sind doch Integer, also kann ich doch
            return stunden.ToString("00") & ":" & minuten.ToString("00") & ":" & sekunden.ToString("00") aufrufen. Klar eine Timespan mit ToString("00") zu formatieren geht nicht, da braucht man schon so etwas wie ToString("hh:mm:ss"), aber TimeSpans wollten wir ja gerade vermeiden.

            Dass kein ToString("00") für Integer existieren soll, halte ich für ein Gerücht. Zumindest nutze ich entsprechendes mit 6 Nullen hier täglich, wenn ich Datenbank-IDs sechsstellig ausgebe und hatte noch nie Probleme

            Comment


            • #7
              Hallo,

              das mit ToString geht nicht war auf die Ausgangsfrage bezogen (studen, minuten, sekunden als strings). D.h. string.ToString(..) geht nicht. Mit anderen Typen exisitieren natürlich Überladungen davon die funktionieren.
              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

              Comment

              Working...
              X