FreeBasic: Zeit

Aus Wikibooks

Datum[Bearbeiten]

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$

Uhrzeit[Bearbeiten]

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

 ? time$
 sleep

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

Zeitmessung[Bearbeiten]

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 1[Bearbeiten]

 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 2[Bearbeiten]

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 Stopuhr[Bearbeiten]

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ärung[Bearbeiten]

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.