FreeBasic: Zeit

DatumBearbeiten

Das Datum lässt sich mit DATE[$] abfragen. Date$ liefert das Datum in der amerikanischen Schreibweise Monat-Tag-Jahr.

 PRINT date$
 SLEEP

Um das Datum zu verändern, gibt es den SETDATE-Befehl. Hier ist ebenfalls die amerikanische Schreibweise erforderlich.

 Input "Monat? ", month$
 Input "Tag?   ", day$
 Input "Jahr?  ", year$
 SETDATE month$ + "-" + day$ + "-" + year$

UhrzeitBearbeiten

Hier lautet der Befehl zum Auslesen TIME[$]; hier ein Beispiel:

 ? time$
 sleep

Zum Verändern der Zeit gibt es den SETTIME-Befehl. (siehe SETDATE)

ZeitmessungBearbeiten

Hier für gibt es den TIMER-Befehl. Die Genauigkeit von Timer hängt vom Computer und dem Betriebssystem ab.

Timer gibt die Zeit seit Systemstart in Sekunden zurück.

Genauer geht es mit dem GetTickCount()-Befehl (unter Windows) Er gibt die Zeit seit dem Systemstart in Millisekunden zurück und ist somit für Spiele geeignet.

Beispiel 1Bearbeiten

 Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
 Print "MS seit Systemstart: "; GetTickCount()
 Sleep

Wenn man jedoch eine Stopuhr programmieren will, kann man auch den GetTickCount()-Befehl benutzen, man muss jedoch einen Punkt als Startpunkt festlegen. Das geht am besten, indem man GetTickCount() mit einer Variable festlegt.

Beispiel 2Bearbeiten

startzeit = GetTickCount()

Wenn man nun die gestoppte Zeit anzeigen will, nimmt man das aktuelle GetTickCount() und subtrahiert davon die startzeit.

PRINT GetTickCount() - startzeit
SLEEP

Beispiel für eine StopuhrBearbeiten

Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long

PRINT "Mit Tastendruck Stopuhr starten."
SLEEP
startzeit = GetTickCount()
PRINT "Stopuhr gestartet. Stopuhr mit Tastendruck beenden."
SLEEP
PRINT "Gestoppte Zeit(in Milisekunden): ", GetTickCount() - startzeit
SLEEP

ErklärungBearbeiten

Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long

PRINT "Mit Tastendruck Stopuhr starten."
SLEEP

Dieser Teil dürfte sich eigentlich von selbst erklären.

startzeit = GetTickCount()
PRINT "Stopuhr gestartet. Stopuhr mit Tastendruck beenden."
SLEEP

Hier wird nun die Startzeit festgelegt und darauf hingewiesen, dass die Stopuhr gestartet wurde.

PRINT "Gestoppte Zeit(in Milisekunden): ", GetTickCount() - startzeit
SLEEP

Nachdem die Stopuhr mit einem Tastendruck beendet wurde gibt sie das Ergebnis von 'GetTickCount() - startzeit' aus. Das ist eigentlich die Basis auf der ALLE Stopuhren basieren sollten.