Что нового

Таймеры: количество прошедшего времени (?)

sokolovska

Новичок
Сообщения
36
Репутация
0
В общем что-то я не могу понять, прошу помочь. В общем ситуация такая - программа обращается к сайту, если сайт недоступен - программа к нему обращается через 3 часа, но на деле этого не работает, хотя:

1. Время доступа при ошибке я записываю при помощи TimerInit() в *.ini файл;
2. Сколько прошло времени я проверяю при помощи TimerDiff(IniRead(...)) > 60000 * 180;

В итоге все равно как-то странно все работает - точно не по таймеру. Все данные верны, я имею ввиду запись и чтение в ini.

В чем может быть или мне кажется? Проходит три часа, а TimerDiff() добро не дает, то есть условие.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
sokolovska,
Вы код покажите.
 
Автор
S

sokolovska

Новичок
Сообщения
36
Репутация
0
madmasles, код - очень большой, но поверьте, что именно все так как я написал. Может возвращаемое значение нельзя записывать в ini-файл? Я имею ввиду значение ф-ции TimerInit(), а также еще иногда TimerDiff() возвращает отрицательное число, может ли из-за этого не срабатывать условие?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
sokolovska [?]
иногда TimerDiff() возвращает отрицательное число
ИМХО, не имеет никакого смысла записывать значение TimerInit() в ини-файл. После перезагрузки оно изменится, поэтому и может быть отрицательное значение в TimerDiff(). Можно, например, записать нужные время-дату, создав их с помощью функции _DateAdd().
 
Автор
S

sokolovska

Новичок
Сообщения
36
Репутация
0
madmasles, спасибо, не знал. Попробую! Что-то я много не знаю.


Добавлено:
Сообщение автоматически объединено:

madmasles, извините, то есть текущее время я записываю таким образом:

Код:
_NowCalc()


А высчитываю так?:

Код:
_DateDiff(_NowCalc(),$sResult_NowCalc)


Где $sResult_NowCalc является переменной со значением из ini файла в виде результата _NowCalc()
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
sokolovska,
Я бы записал эту дату-время
Код:
#include <Date.au3>

$sNewDate = _DateAdd('h', 3, _NowCalc())
ConsoleWrite($sNewDate & @LF)
А потом прочитанное сравнивал
Код:
#include <Date.au3>

$iDateCalc = _DateDiff('s', _NowCalc(), $sNewDate)
ConsoleWrite($iDateCalc & @LF)
If $iDateCalc <= 0 Then
	ConsoleWrite('прошло 3 часа' & @LF)
EndIf



Добавлено:
Сообщение автоматически объединено:

Или у дат обрезать секунды и сравнивать просто строки, без _DateDiff().
 
Верх