Hallo miteinander, woher kommt der Unterschied??? Bei der zweiten Variante wird für die aktuelle Kalenderwoche ein falscher Wert zurückgegeben.
So ist es richtig:
Spoiler anzeigen
#include <Date.au3>
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite('kw ' & _WeekNumberISO() & @LF)
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite('kw für letzte Woche ist: ' & _KW_IF(2)&@LF)
ConsoleWrite('kw für diese Woche ist: ' & _KW_IF(0)&@LF)
ConsoleWrite('kw für nächste Woche ist: ' & _KW_IF(1)&@LF)
ConsoleWrite('Fehler: ' &@error&@LF)
Func _KW_IF($kw)
;~ ConsoleWrite('Wert $kw= ' & $kw & @LF)
If $kw = 0 Then ;aktuelle Woche
$ret = _WeekNumberISO()
ElseIf $kw = 1 Then ;nächste Woche
$s_string =StringSplit(_DateAdd('d', 7, _NowCalcDate()), '/')
$ret = _WeekNumberISO($s_string[1], $s_string[2], $s_string[3])
ElseIf $kw = 2 Then ;letzte Woche
$s_string =StringSplit(_DateAdd('d', - 7, _NowCalcDate()), '/')
$ret = _WeekNumberISO($s_string[1], $s_string[2], $s_string[3])
Else
MsgBox(16,'','Es wurde kein gültiger Parameter übergeben.')
EndIf
Return $ret
EndFunc
So ist es falsch - warum:
Spoiler anzeigen
#include <Date.au3>
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite('kw ' & _WeekNumberISO() & @LF)
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite('kw für letzte Woche ist: ' & _KW_SWITCH(2)&@LF)
ConsoleWrite('kw für diese Woche ist: ' & _KW_SWITCH(0)&@LF)
ConsoleWrite('kw für nächste Woche ist: ' & _KW_SWITCH(1)&@LF)
ConsoleWrite('Fehler: ' &@error&@LF)
Func _KW_SWITCH($kw)
;~ ConsoleWrite('Wert $kw= ' & $kw & @LF)
Switch $kw
Case $kw = 0 ;aktuelle Woche
$ret = _WeekNumberISO()
Case $kw = 1 ;nächste Woche
$s_string =StringSplit(_DateAdd('d', 7, _NowCalcDate()), '/')
$ret = _WeekNumberISO($s_string[1], $s_string[2], $s_string[3])
Case $kw = 2 ;letzte Woche
$s_string =StringSplit(_DateAdd('d', - 7, _NowCalcDate()), '/')
$ret = _WeekNumberISO($s_string[1], $s_string[2], $s_string[3])
Case Else
MsgBox(16,'','Es wurde kein gültiger Parameter übergeben.')
EndSwitch
Return $ret
EndFunc