FreeBasic: Zeit
Datum
BearbeitenDas 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
BearbeitenHier lautet der Befehl zum Auslesen TIME[$]; hier ein Beispiel:
? time$
sleep
Zum Verändern der Zeit gibt es den SETTIME-Befehl. (siehe SETDATE)
Zeitmessung
BearbeitenHier 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
Bearbeitenstartzeit = 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
BearbeitenDeclare 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
BearbeitenDeclare 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.