Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Mathematik

Now() in Sekunden umrechnen

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.MitgliedThePuppetMaster 13.10.2010

Der Timer()-Befehl gibt die Sekunden nach dem Start des Computers zurück, und der Now()-Befehl (über vbcompat.bi zu includieren) gibt die aktuelle Zeit als Double zurück.

Dabei ist zwar die Zeit in Tagen als Ganzzahl gegeben, jedoch ist der Zeitanteil der Stunden, Minuten und Sekunden als 0.0 bis 0.99999~ codiert.

Um nun auch Now() in Sekunden umzurechnen und somit einen Zeitabstand zu ermitteln, den man komfortabel zum Anzeigen einer Laufzeit ohne den Timer()-Befehl verwenden kann, muss man den Double-Wert in einen UInteger-Wert umwandeln. Jedoch reicht hier nicht ein einfaches CUInt() aus, um das Problem zu lösen. Es darf nicht vergessen werden, das die Sekunden, Minuten und Stunden als Gleitkommawert definiert wurden.

Zur Lösung des Problems kann man folgende kleine Umrechungsfunktion nutzen:

Function NowTimeTransform(V_Value as Double) as UInteger
Return abs(V_Value) * 86400 + (86400 * (V_Value - abs(V_Value)))
End Function

Diese Funktion wandelt den Now() Double-Wert in einen Sekunden UInteger-Wert um.

#include once "vbcompat.bi"
Print NowTimeTransform(Now()) 'Gibt die aktuelle Zeit in Sekunden aus
Dim XTime as Double = Now() 'wir speichen die aktuelle Zeit für eine Zeitmessung.
Sleep 3000, 1 'und warten anschliessend 3 sekunden
Print NowTimeTransform(Now() - XTime) 'jetzt rechnen wir von der aktuellen Zeit die Startzeit weg, und erhalten so einen Zeitabstand.

'Würde man hier nur Now() - XTime) ohne die Umrechnung nutzen, so würde man nur einen Wert erhalten, der 0.000134 oder ähnlich aussieht, jedoch nicht den Wert 3

Viel Spass
MfG
TPM


Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 27.12.2008 von MitgliedThePuppetMaster angelegt.
  • Die aktuellste Version wurde am 13.10.2010 von Redakteurytwinky gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen