[已解决]判斷小於七天的寫法
本帖最后由 ipmitool 于 2016-11-1 11:57 编辑各位大哥,
我寫一個判斷小於七天就顯示msgbox, 這看起來沒有問題,
但是假設今天20161101, 那麼依照我的公式20161101-7
就會等於20161094, 這樣會造成判斷不對的情況 因為20161031也會被判斷成小於七天, 但它明明是昨天而已..
請問要怎麼解決這個問題呢?$systemtime4 = (@YEAR&@MON&@MDAY)-7
IF $aNewListA[$j] < $systemtime4 Then
msgbox(0,"1", "Over 7days")
EndIf 回复 1# ipmitool
用:_DateDiff('D', $iDatex, _NowCalc()) 回复 2# chzj589
好像systemtime4會變成 2016/11/-6
有別的寫法嗎?#include <Date.au3>
#include <MsgBoxConstants.au3>
$systemtime= "2016/10/31"
$systemtime4 = @YEAR&"/"&@MON&"/"&@MDAY-7
$123=_DateDiff('D', $systemtime4, _NowCalc())
IF $systemtime < $123 Then
msgbox(0,"1", $123)
Else
msgbox(0,"2", "Over 7days")
EndIf
回复 3# ipmitool
修改一下代码:
#include <Date.au3>
$systemtime = "2016/11/01";结束日期
$123 = _DateDiff('D', $systemtime, _NowCalc())
Local $sString = StringTrimLeft($123, 1) ; 删除字符串左起 1 个字符.
If $systemtime >= $sString Then
MsgBox(0, "1", $sString)
Else
MsgBox(0, "2", "Over " & $sString & " days")
EndIf
$systemtime = "2016/11/01"
不好意思, 我忘記我的日期抓到的會是這樣的格式
201611011723
年月日時分
這樣的情況好像沒辦法用datediff... $systemtime = "2016/11/01"
不好意思, 我忘記我的日期抓到的會是這樣的格式
201611011723
年月日時分
...
ipmitool 发表于 2016-11-1 09:35 http://www.autoitx.com/images/common/back.gif
用正则替换:
#include <Date.au3>
$aaa = "201611011723";结束日期
Local $sNe = StringTrimRight($aaa, 4)
Local $Riqi = StringMid($sNe, 1, 4) & "/" & StringMid($sNe, 5, 2) & "/" & StringMid($sNe, 7, 2)
;$systemtime = "2016/11/01";结束日期
$123 = _DateDiff('D', $Riqi, _NowCalc())
Local $sString = StringTrimLeft($123, 1) ; 删除字符串左起 1 个字符.
If $systemtime >= $sString Then
MsgBox(0, "1", $sString)
Else
MsgBox(0, "2", "Over " & $sString & " days")
EndIf
回复 6# chzj589
不好意思,第8行应改为:
If $aaa >= $sString Then 回复 7# chzj589
感謝大哥, 好厲害阿~~~
页:
[1]