#include <GUIConstants.au3>
#include <date.au3>

$GUI = GUICreate('Aktuelle Zeit', 300, 200, 193, 115)
GUISetBkColor(0x000000)
WinSetOnTop('Aktuelle Zeit', '', 1)

GUICtrlCreateLabel('Zeit in Deutschland', 8, 8, 280, 20)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial')
GUICtrlSetColor(-1, 0x8888FF)
GUICtrlSetBkColor(-1, 0x000000)

$Input1 = GUICtrlCreateLabel('', 8, 30, 280, 20, $SS_LEFT)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial')
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)

$Input2 = GUICtrlCreateLabel('', 8, 53, 280, 20, $SS_LEFT)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial')
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)

GUICtrlCreateLabel('Zeit in Korea', 8, 108, 280, 20)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial')
GUICtrlSetColor(-1, 0x8888FF)
GUICtrlSetBkColor(-1, 0x000000)

$Input4 = GUICtrlCreateLabel('', 8, 130, 280, 20, $SS_LEFT)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial')
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)

$Input5 = GUICtrlCreateLabel('', 8, 153, 280, 20, $SS_LEFT)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial')
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)

AdlibEnable('xDateUpdate',1000)
xDateUpdate()
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func _DateUpdate(); Diese Funktion ist nur noch hier drin, um den Unterschied zu testen
$date = _NowCalc()
GUICtrlSetData($Input2,_DateTimeFormat($date,5))
GUICtrlSetData($Input1, _DateTimeFormat($date,1))
$theirdate = _DateAdd('h',8,$date)
GUICtrlSetData($Input5,_DateTimeFormat($theirdate,5))
GUICtrlSetData($Input4, _DateTimeFormat($theirdate,1))
EndFunc

Func xDateUpdate()
	GUICtrlSetData($Input1, xWDAY(@WDAY) & ', ' & @MDAY & '. ' & xMON(@MON) & ' ' & @YEAR)
	GUICtrlSetData($Input2, @HOUR & ':' & @MIN & ':' & @SEC)
	Local $aDays = StringSplit('31,28,31,30,31,30,31,31,30,31,30,31', ',')
	Local $T2_Year = @YEAR
	Local $T2_Mon = @MON
	Local $T2_MDay = @MDAY
	Local $T2_WDay = @WDAY
	Local $T2_Hour = @HOUR + 8; Hier die Zeitverschiebung in Stunden eintragen
	Local $T2_Min = @MIN
	Local $T2_Sec = @SEC
	If $T2_Hour > 24 Then
		$T2_Hour -= 24
		$T2_WDay += 1
		If $T2_WDay > 7 Then $T2_WDay = 1
		$T2_MDay += 1
		If _DateIsLeapYear($T2_Year) Then 
			$aDays[2] = 29
		Else
			$aDays[2] = 28
		EndIf
		If $T2_MDay > $aDays[$T2_Mon] Then
			$T2_MDay = 1
			$T2_Mon += 1
			If $T2_Mon > 12 Then
				$T2_Mon = 1
				$T2_Year += 1
			EndIf
		EndIf
	EndIf
	GUICtrlSetData($Input4, xWDAY($T2_WDay) & ', ' & $T2_MDay & '. ' & xMON($T2_Mon) & ' ' & $T2_Year)
	GUICtrlSetData($Input5, $T2_Hour & ':' & $T2_Min & ':' & $T2_Sec)
EndFunc

Func xWDAY($wDay)
	Local $aDay = StringSplit('Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag', ',')
	Return $aDay[$wDay]
EndFunc
Func xMON($Mon)
	Local $aMon = StringSplit('Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember', ',')
	Return $aMon[$Mon]
EndFunc
