- Offizieller Beitrag
Hi,
Hintergrund hierfür war der Versuch, in einem ListView-Item mittels _GUICtrlListView_SetItemParam() Datum und Uhrzeit abzuspeichern, wobei die Uhrzeit mit Sekundenangabe gespeichert werden soll.
Da als Speichergröße nur ein 32bit Integer zur Verfügung steht, fallen TimeToTicks und andere Varianten aus.
Edit:
Habe es auf progandys Tipp hin nun mit Unix-Timestamp realisiert. Somit ergibt sich ein verwendbarer Datumsbereich von 1902 - 2038.
Das sollte i.A. ausreichen.
Hier als Bsp. in einem ListView:
Spoiler anzeigen
#include <Date.au3>
#include <GuiListView.au3>
$gui = GUICreate('test')
$ListView = GUICtrlCreateListView('Testspalte', 10, 10, 200,200)
GUICtrlCreateListViewItem("1", $ListView)
GUICtrlCreateListViewItem("2", $ListView)
GUICtrlCreateListViewItem("3", $ListView)
$hListView = GUICtrlGetHandle($ListView)
GUISetState()
Local $y = @YEAR, $mon = @MON, $d = @MDAY, $h = @HOUR, $m = @MIN, $s = @SEC
_GUICtrlListView_SetItemParam($hListView, 1, _DateTimeToTimeStamp($y, $mon, $d, $h, $m, $s))
MsgBox(0, 'Gesetztes Datum', $y & '/' & $mon & '/' & $d & ' ' & $h & ':' & $m & ':' & $s)
Sleep(500)
While 1
$getItem = _TimeStampToDateTime(_GUICtrlListView_GetItemParam($hListView, 1))
MsgBox(0, 'Gelesenes Datum', $getItem)
ExitLoop
WEnd
; Limit: 1902 - 2038
Func _DateTimeToTimeStamp($year, $mon, $day, $h, $m, $s)
Return _DateDiff('s', "1970/01/01 00:00:00", $year & '/' & $mon & '/' & $day & ' ' & $h & ":" & $m & ":" & $s)
EndFunc
Func _TimeStampToDateTime($Number)
Return _DateAdd('s', $Number, "1970/01/01 00:00:00")
EndFunc