vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: Datum/Zeit und Timer · Datums- und Zeit-Funktionen   |   VB-Versionen: VB2005, VB200829.01.09
Sekunden schnell in das Format HH:MM:SS umwandeln

Dieser Tipp zeigt, wie sich Sekunden sehr schnell und ohne große Umrechenaktionen in das Format HH:MM:SS umwandeln lassen.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  14.537 
www.tools4vb.deSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Vor langer Zeit haben wir Ihnen einmal eine Funktion für VB6 vorgestellt, mit der sich Sekunden schnell in das Format HH:MM:SS umwandeln lassen:
 Sekunden schnell nach HH:MM:SS umwandeln

Da dieser Code unter VB.NET ohne Anpassungen nicht so ohne Weiteres läuft, möchten wir Ihnen heute zwei Möglichkeiten der Sekundenumwandlung für VB.NET vorstellen.

1. Variante
Wir übernehmen das Wissen aus o.g. Tipp für VB6, d.h. wir teilen die Sekunden durch 1/86400, um weisen das Ergebnis einer Variable vom Typ Double zu. Allerdings müssen wir dann die FromOADate-Methode des .NET Date-Objekts verwenden, um das Ergebnis ins Format HH:MM:SS umwandeln zu können:

' Sekunden nach hh:mm:ss umrechnen
Public Function FormatSeconds(ByVal nSeconds As Long, _
  Optional ByVal sFormat As String = "HH:mm:ss") As String
 
  Return Date.FromOADate(CDbl(nSeconds * (1 / 86400))).ToString(sFormat)
End Function

2. Variante
Über die AddSeconds-Methode des .NET Date-Objekts kann man das ganze auch wie folgt lösen:

' Sekunden nach hh:mm:ss umrechnen
Public Function FormatSeconds(ByVal nSeconds As Long, _
  Optional ByVal sFormat As String = "HH:mm:ss") As String
 
  Return CDate("00:00:00").AddSeconds(nSeconds).ToString(sFormat)
End Function

Erweiterung vom WmS (01.02.09):
Möchte man auf die VB-Funktion CDate() verzichten und auch im Code festgelegte Strings vermeiden, so bietet sich auch dieser Einzeiler an:

Public Function FormatSeconds(ByVal nSeconds As Integer) As String
  Return New TimeSpan(0, 0, nSeconds).ToString
End Function

Hier wird allerdings automatisch als Format das der auf dem Computer eingestellten Kultur entsprechende verwendet, in Deutschland also wie voreingestellt hh:mm:ss. Das kann man jetzt sowohl als Vorteil als auch als Nachteil ansehen.

Dieser Tipp wurde bereits 14.537 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (2 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel