Войти

Показать полную графическую версию : подсчет даты для запроса за х-дней назад


val_k
19-12-2012, 18:17
Наваял скрипт - не понимаю почему неправильно считает - переходы по иф неправильно работают - бред какой-то

Суть такая берем из лога на какую дату хотим отчет (например за 2, 26 дней от текущего)
проверяем что текущий день больше чем дайсемпл=26 к примеру и сразу же иф не работает .....
пример кода :

#Include <Date.au3>
Global $DaySample,$TimeOut
if FileExists(@ScriptDir&"\ini1.ini") then
MsgBox(4096, "start","read ini: "&@ScriptDir&"\ini1.ini",3)
$DaySample = IniRead(@ScriptDir&"\ini1.ini","Main","DaySample","2")
$TimeOut = IniRead(@ScriptDir&"\ini1.ini","Main","TimeOut","12")
Else
MsgBox(4096, "error",@ScriptDir&"\ini1.ini"&" | ini open error!")
Exit 0
EndIf
MsgBox(4096, "start","run ",3)
$date=_NowDate()
$dd=StringLeft($date,2)
$mm=StringMid($date,4,2)
$yy=StringRight($date,2)

if $dd > $DaySample then
$dd=$dd-$DaySample
ElseIf $mm>2 then
$mm=$mm-1
$dd = _DateDaysInMonth(@YEAR,$mm)-$DaySample+$dd
ElseIf $mm=1 Then
$mm = 12
$yy=$yy-1
EndIf

MsgBox(4096, "start ","data ="&$dd&$mm&$yy ,34)
Exit

madmasles
20-12-2012, 23:45
val_k,
Если я Вас правильно понял.#include (http://autoit-script.ru/autoit3_docs/keywords.htm##include) <Date.au3>

$iDays = -26
$sNewDate = _DateAdd (http://autoit-script.ru/autoit3_docs/libfunctions/_dateadd.htm)('d', $iDays, _NowCalcDate (http://autoit-script.ru/autoit3_docs/libfunctions/_nowcalcdate.htm)())
MsgBox (http://autoit-script.ru/autoit3_docs/functions/MsgBox.htm)(64, 'Info', 'New Date: ' & $sNewDate & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf) & _DateTimeFormat (http://autoit-script.ru/autoit3_docs/libfunctions/_datetimeformat.htm)($sNewDate, 2))

val_k
21-12-2012, 12:26
madmasles, спасибо , ваш код помог избавиться от ненужных расчетов , моя задача решена.




© OSzone.net 2001-2012