Delphi Klasse: ToxGetTime
Zeitausgabe leicht gemacht mit Delphi 12 und ToxGetTime

Einleitung
Zeit ist eine der wichtigsten Maßeinheiten in der Programmierung. Sie wird in unterschiedlichsten Formaten benötigt: von Nanosekunden bis zu Tagen. Doch was passiert, wenn du häufig mit Zeiten arbeiten musst und für jede Umrechnung der Werte in die jeweiligen Zeiteinheiten (wie Sekunden, Minuten, Stunden usw.) manuell umrechnen möchtest? Es wird schnell unübersichtlich und fehleranfällig. ToxGetTime wurde genau aus diesem Grund entwickelt: eine bequeme und schnelle Möglichkeit, Zeiten in verschiedenen Einheiten darzustellen und zu konvertieren.
In diesem Blogbeitrag werfen wir einen Blick auf die Entstehung der ToxGetTime-Klasse, erklären ihre Funktionen und zeigen, wie sie deine Arbeit mit Zeitwerten erheblich erleichtern kann.
Das Problem: Umrechnung von Zeiten in verschiedenen Einheiten
In vielen Softwareprojekten, besonders in Bereichen wie Messdatenaufzeichnung, Simulationen oder Performance-Überwachung, muss die Zeit regelmäßig in verschiedenen Einheiten dargestellt werden. Zum Beispiel möchtest du oft eine Zeit in Sekunden erhalten, manchmal aber auch in Millisekunden, Nanosekunden oder sogar Tagen.
Die Standardmethoden in der Programmiersprache Delphi (und anderen) erfordern, dass du für jede Umrechnung manuell die jeweiligen Formeln verwendest. Dies kann jedoch schnell zu unnötigem Code führen, der fehleranfällig und schwer zu warten ist.
Die Lösung: ToxGetTime
ToxGetTime
wurde entwickelt, um diese Probleme zu lösen. Die Klasse hilft dabei, eine Zeit in Sekunden (die Grundmaßheit) zu speichern und stellt Funktionen zur Verfügung, mit denen diese Zeit bequem in andere Zeiteinheiten umgerechnet werden kann. Sie erlaubt es, Zeiten einfach in Nanosekunden, Millisekunden, Sekunden, Minuten, Stunden oder Tagen anzuzeigen. Auch eine Textdarstellung der Zeit ist integriert, um die Ausgabe für den Benutzer ansprechend und verständlich zu gestalten.
Die Entstehung von ToxGetTime
Die Motivation hinter der Erstellung von ToxGetTime
war, die häufige Aufgabe der Zeitumrechnung zu vereinfachen. In vielen Projekten, bei denen die Zeitmessung eine zentrale Rolle spielt (wie z.B. bei der Messung von Ladezeiten, der Berechnung von Ausführungszeiten in Programmen oder beim Arbeiten mit zeitabhängigen Daten), musste immer wieder der gleiche Code für die Umrechnung der Zeit in unterschiedliche Einheiten geschrieben werden.
Ein einfaches Beispiel: Wenn du ein Performance-Profiling machst und die Zeit in Millisekunden berechnen willst, aber auch Minuten oder Sekunden anzeigen möchtest, wäre es ineffizient, jedes Mal die Berechnungen erneut zu schreiben. ToxGetTime
löst genau dieses Problem. Mit nur wenigen Methodenaufrufen erhältst du alle gängigen Zeitformate und kannst die Ausgabe schnell und effektiv umsetzen.
Die Struktur von ToxGetTime
ToxGetTime
ist als Record (Datenstruktur) implementiert und enthält nur ein einziges private Feld: FTimeInSeconds
, das die Zeit in Sekunden speichert.
Die Hauptfunktionen von ToxGetTime
1. Time:
Die statische Methode Time
erstellt ein neues ToxGetTime
-Record mit einer übergebenen Zeit in Sekunden.
2. Umrechnungsfunktionen:
ToxGetTime
stellt verschiedene Umrechnungsfunktionen bereit, mit denen du die Zeit in andere Einheiten umwandeln kannst:
- Nanosekunden:
asNanoseconds
- Millisekunden:
asMilliseconds
- Sekunden:
asSeconds
- Minuten:
asMinutes
- Stunden:
asHours
- Tagen:
asDays
Jede dieser Funktionen gibt die Zeit als Double zurück, was eine einfache und flexible Handhabung ermöglicht.
3. GetTimeAsText:
Mit dieser Funktion kannst du die Zeit als Text im gewünschten Format ausgeben lassen. Du kannst zwischen einer kurzen und einer langen Textdarstellung wählen.
Die Methode nimmt mehrere Parameter:
LongText
: WennTrue
, werden die vollständigen Labels (z.B. „Nanosekunden“, „Millisekunden“) verwendet, andernfalls die Kurzbezeichner (z.B. „ns“, „ms“).Decimals
: Legt die Anzahl der Dezimalstellen fest, die in der Ausgabe erscheinen.LabelsShort
undLabelsLong
: Erlaube es dir, die Bezeichner für die Zeiteinheiten selbst festzulegen.
Ausgabe-Beispiele: Wie ToxGetTime
die Zeitdarstellung vereinfacht
Nachdem wir nun die Struktur und Funktionen von ToxGetTime
erläutert haben, wollen wir uns einige praktische Beispiele anschauen, wie diese Klasse verwendet werden kann, um Zeitwerte in unterschiedlichen Formaten anzuzeigen. Die Flexibilität und Benutzerfreundlichkeit der ToxGetTime
-Klasse wird in den folgenden Szenarien deutlich.
Beispiel 1: Ausgabe von Zeit in verschiedenen Einheiten
Angenommen, du hast eine Zeit von 2,5 Sekunden und möchtest sie in verschiedenen Zeiteinheiten ausgeben. Mit ToxGetTime
kannst du das in wenigen Zeilen erledigen:
Ausgabe:
Hier siehst du, wie einfach du die Zeit in verschiedenen Einheiten darstellen kannst. Dank der ToxGetTime
-Methoden benötigst du keine eigenen Berechnungen mehr – alles geschieht automatisch.
Beispiel 2: Ausgabe als Text mit benutzerdefinierten Labels
In vielen Anwendungen möchtest du die Zeit nicht nur als Zahl ausgeben, sondern auch eine benutzerfreundliche Textdarstellung verwenden. Hier kommt die GetTimeAsText-Methode ins Spiel. Diese Methode kann die Zeit entweder in kurzen Bezeichnern oder mit langen, erklärenden Labels darstellen.
Beispiel mit langen Labels:
Ausgabe:
Beispiel mit kurzen Labels:
Ausgabe:
Du siehst, wie du durch das Setzen des Parameters LongText
entscheiden kannst, ob du kurze oder lange Labels für die Zeiteinheit verwenden möchtest. Mit der GetTimeAsText
-Methode kannst du die Zeit in einer benutzerfreundlichen und anpassbaren Weise darstellen.
Beispiel 3: Nutzung von benutzerdefinierten Labels
Falls du mit speziellen Zeitbezeichnern arbeiten möchtest (z.B. in einer Anwendung für Wissenschaft oder Technik), kannst du auch benutzerdefinierte Labels über die Parameter LabelsShort
und LabelsLong
anpassen.
Ausgabe:
In diesem Beispiel wurden die Zeitbezeichner von den Standardwerten (Nanosekunden
, Millisekunden
, etc.) auf Nano
, Milli
, Sek
, Min
und H
geändert.
Fazit:
Mit ToxGetTime
hast du eine mächtige und flexible Klasse zur Hand, die dir die Arbeit mit Zeitwerten erheblich vereinfacht. Du kannst nicht nur schnell und fehlerfrei Zeitumrechnungen vornehmen, sondern auch die Ausgabe der Zeit in benutzerfreundlichen Formaten (mit kurzen oder langen Labels) gestalten. Besonders die Möglichkeit, benutzerdefinierte Labels zu verwenden, ermöglicht es dir, die Klasse an deine spezifischen Anforderungen anzupassen. Wenn du also regelmäßig mit Zeitwerten arbeitest, ist ToxGetTime
ein unverzichtbares Werkzeug, das dir viel Entwicklungszeit und Mühe spart.