FreeBasic: Datum und Uhrzeit
Time
BearbeitenDie einfachste Möglichkeit die Zeit auszugeben ist Time.
print time
sleep
Ok, die Zeit wird ausgegeben, aber wie speichert man die Uhrzeit? Das geht so:
dim Zeit as string
Zeit = time
print Zeit
sleep
Die Uhrzeit wird bei Time im Format "hh:mm:ss" wiedergegeben. Wenn du aufgepasst hast siehst du, dass die Variable Zeit im Beispiel ein String ist. Wo liegt das Problem könntest du dich Fragen. Das Problem ist das man die Uhrzeit im allgemeinen als Zahlen haben möchste. Im Thema String Manipulation hat du die Funktion Mid() kennen gelernt. Mit dieser Funktion werden wir uns jetzt drei Hilfsfunktionen schreiben:
declare function GetHour() as integer
declare function GetMinute() as integer
declare function GetSecond() as integer
function GetHour() as integer
dim Zeit as string
Zeit = mid(time,1,2)
return val(Zeit)
end function
function GetMinute() as integer
dim Zeit as string
Zeit = mid(time,4,5)
return val(Zeit)
end function
function GetSecond() as integer
dim Zeit as string
Zeit = mid(time,7,8)
return val(Zeit)
end function
So jetzt kannst du die einzelnen Bestandteile der Uhrzeit als Integer benutzten. Aber eins haben wir noch vergessen, die Sekundenbruchteile. Man braucht oft genug zum vergleich wie lang bestimmte Vorgänge dauern Sekundenbruchteile. Hier noch eine Hilfsfunktion um Sekundenbruchteile zu benutzen. Die Erklärung reicht ins nächste Thema herein.
declare function GetSplitSecond() as double
function GetSplitSecond() as double
return timer-int(timer)
end function
Zeitmessung
BearbeitenIm letzten Unterkapitel hast du gesehen, dass man auch Sekundenbruchteile messen kann. Wenn du ins letzte Beispiel schaust, wirst du sehen, dass in der Funktion GetSplitSecond() nicht Time sondern Timer benutzt wird. Der Buchstabe macht viel aus. Time gibt die aktuelle Uhrzeit zurück, während Timer die Zeit die der Computer an ist auf 16 Nachkommastellen genau angibt. Mit dieser unscheinbaren Funktion lässt sich einiges anstellen. Im Kapitel Zufall hast du von ihr gebrauch gemacht, um die Zufallsreihen zu initialisieren. Hier wirst du sie benutzten um die Zeit zu messen. Ein kleines Beispiel:
dim Zeit as double
dim i as integer
Zeit = timer
for i = 0 to 50000
print "Ich verschwende Zeit!"
next
Zeit = timer - Zeit
print Zeit
sleep
Der Text "Ich verschwende Zeit!" wird 50000 mal ausgegeben. Die Differenz zwischen Endzeit und Startzeit ist die dauer der For-Schleife. Bei mir waren es 4.56 Sekunden. Ihr werdet sicher ein anderes Ergebnis bekommen. Versuchts einfach mal.
Datum
BearbeitenDas Datum ermittelt man mit Date. Das Format ist "mm-dd-yyyy".Ansonsten ist alles gleich wie bei Time. Für das Datum brauchen wir auch Hilfsfunktionen, die so aussehen:
declare function GetMonth() as integer
declare function GetDay() as integer
declare function GetYear() as integer
function GetMonth() as integer
dim Zeit as string
Zeit = mid(date,1,2)
return val(Zeit)
end function
function GetDay() as integer
dim Zeit as string
Zeit = mid(date,4,5)
return val(Zeit)
end function
function GetYear() as integer
dim Zeit as string
Zeit = mid(date,7,10)
return val(Zeit)
end function
Mehr gibt es nicht wirklich zu sagen ausser, dass man mit Setdate das Datum setzen kann. Die Funktion erwartet einen String wie ihn Date liefern würde, allerdings solltest du von dieser Funktion nur gebrauch machen wenn es wirklich sein muss.