Diese Funktion konvertiert eine Ganzzahl in ein beliebiges Format - und zwar Zeitformat. Die Anordnung und das Aussehen des Formates kann frei verändert werden, es ist zum Beispiel möglich, Text einzufügen, die Sekunden vor die Minuten zu stellen, einen Wert mehrfach anzuzeigen usw. Tabelle der unterstützten Zeichenkonstanten
Diese Liste kann natürlich beliebig erweitert werden, z.B. wenn Sie Text einfügen möchten, der ein d, h, m oder s enthält (diese würden ja durch Stunden, Minuten etc. ersetzt werden). Parameter:
Function FormatTime(ByVal lngInputValue As Long, _ Optional ByVal sInputType As String = "s", _ Optional ByVal sFormat As String = "hh:mm:ss", _ Optional ByVal sMaxValue As String = "d") As String ' Eingabewert in Sekunden umrechnen Select Case sInputType Case "m" lngInputValue = lngInputValue * 60 Case "h" lngInputValue = lngInputValue * 3600 Case "d" lngInputValue = lngInputValue * 86400 Case "s" Case Else Exit Function End Select ' MaxValue in schönere Form bringen ' (zum Rechnen) Dim iMaxValue As Integer Select Case sMaxValue Case "d" iMaxValue = 0 Case "h" iMaxValue = 1 Case "m" iMaxValue = 2 Case "s" iMaxValue = 3 Case Else iMaxValue = 0 End Select Dim d As Long Dim h As Long Dim m As Long Dim s As Long ' Tage ausrechnen If iMaxValue = 0 Then d = Int(lngInputValue / 86400) lngInputValue = lngInputValue - (86400 * d) End If ' Stunden ausrechnen If iMaxValue <= 1 Then h = Int(lngInputValue / 3600) lngInputValue = lngInputValue - (3600 * h) End If ' Minuten ausrechnen If iMaxValue <= 2 Then m = Int(lngInputValue / 60) lngInputValue = lngInputValue - (60 * m) End If ' Rest: Sekunden ;-) s = lngInputValue Dim dd As String Dim dh As String Dim dm As String Dim ds As String ' ggf. eine Null vor der Zahl einfügen dd = Format$(d, "00") dh = Format$(h, "00") dm = Format$(m, "00") ds = Format$(s, "00") ' "dd" durch Tage ersetzen (ggf. mit Null) sFormat = Replace(sFormat, "dd", dd) ' "d" durch Tage ersetzen sFormat = Replace(sFormat, "d", d) ' "hh" durch Stunden ersetzen (ggf. mit Null) sFormat = Replace(sFormat, "hh", dh) ' "h" durch Stunden ersetzen sFormat = Replace(sFormat, "h", h) ' "mm" durch Minuten ersetzen (ggf. mit Null) sFormat = Replace(sFormat, "mm", dm) ' "m" durch Minuten ersetzen sFormat = Replace(sFormat, "m", m) ' "ss" durch Sekunden ersetzen (ggf. mit Null) sFormat = Replace(sFormat, "ss", ds) ' "s" durch Sekunden ersetzen sFormat = Replace(sFormat, "s", s) Dim Textd As String Dim Texth As String Dim Textm As String Dim Texts As String If d = 1 Then Textd = "Tag" Else Textd = "Tage" If h = 1 Then Texth = "Stunde" Else Texth = "Stunden" If m = 1 Then Textm = "Minute" Else Textm = "Minuten" If s = 1 Then Texts = "Sekunde" Else Texts = "Sekunden" ' (0) durch Tag / Tage ersetzen sFormat = Replace(sFormat, "(0)", Textd) ' (1) durch Stunde / Stunden ersetzen sFormat = Replace(sFormat, "(1)", Texth) ' (2) durch Minute / Minuten ersetzen sFormat = Replace(sFormat, "(2)", Textm) ' (3) durch Sekunde / Sekunden ersetzen sFormat = Replace(sFormat, "(3)", Texts) ' (&) durch und ersetzen sFormat = Replace(sFormat, "(&)", "und") FormatTime = sFormat End Function Beispiele: FormatTime(1000) ' Ausgabe: 00:16:40 FormatTime(1000, "m") ' Ausgabe: 16:40:00 FormatTime(2000, "m") ' Ausgabe: 09:20:00 FormatTime(2000, "m", "d (0), hh:mm:ss") ' Ausgabe: 1 Tag, 09:20:00 FormatTime(2000, "m", "hh:mm:ss", "h") ' Ausgabe: 33:20:00 FormatTime(3967, "s", "h:m:s") ' Ausgabe: 1:6:7 FormatTime(200000, "s", "d (0), h (1), m (2) (&) s (3)", "d") ' Ausgabe: 2 Tage, 7 Stunden, 33 Minuten und 20 Sekunden FormatTime(9, "s", "s / ss / s / ss") ' Ausgabe: 9 / 09 / 9 / 09 FormatTime(1, "m", "(2)") ' Ausgabe: Minute Dieser Tipp wurde bereits 27.489 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Dezemeber 2024 Roland Wutzke MultiSort im ListView-Control Dieses Beispiel zeigt, wie sich verschiedene Sortierfunktionen für ein ListView Control realisieren lassen. Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||||||||||||||||||||||||||||||||||||
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. |