Неправильно считает
Куда-то выпилили авторизацию с вк, ну да ладно...
В общем у меня проблема со счетом времени.
Итак вот мой скрипт:
HTML код:
set fileSHARE=C:\111.txt
::путь к логу
::достаем дату изменения
::@echo off
for /f "usebackq delims=" %%I in ('"%fileSHARE%"') do set A=%%~tI
echo Last share in %a%
set mon=%a:~3,2%
::месяц
set D=%a:~0,2%
::день
set h=%a:~11,2%
::часы
set m=%a:~14,2%
::минуты
::переводим время изменения (часы минуты) в секунды
set /a Hs=H*3600
set /a Ms=M*60
::время изменения в секундах
set /a Ts=Hs+Ms
@echo off
echo ________________
echo hs %Hs%
echo ms %ms%
echo ts %ts%
echo ________________
Теперь я опишу суть ситуации, я перевожу время изменения файла в секунды и (математически) аналогично перевожу реальное время (я не стал расписывать, но работает так же), затем сравниваю эти величины. Так вот, все работает идеально за одним НО. Каждый час в 08 и 09 минут set /a Ms=M*60 равно нулю, КАК ТАК ТО???
|
Цитата:
Цитата blacktor
Каждый час в 08 и 09 минут »
|
Потому, что числа, начинающиеся на 0 интерпретируются, как восьмеричные числа, а 8 и 9 не могут ими быть.
|
Как всегда меня выручили, спасибо. Я об этом не знал)
|
Georgio, это неверное решение. Если удалять 0, то допустим вместо 10:08, что равно 36480 секунд мы получим 1:8, что неверно сосчитается и получится 4080. Надо разделять часы, даты, месяцы еще больше, до 1 цифры, а потом пользоваться математикой и все перескладывать и переумножать))). Например так:
Цитата:
set now=%DATE: =0% %TIME: =0%
echo Real times is %now%
set mon1=%now:~3,2%
::месяц
set D1=%now:~0,2%
::день
set H11=%now:~11,1%
set H12=%now:~12,1%
::часы
set M11=%now:~14,1%
set M12=%now:~15,1%
::минуты
::переводим текущее время (часы минуты) в секунды
set /a h1=h11*600+h12*60
set /a Hs1=H1*60
set /a m1=m11*10+m12
set /a Ms1=M1*60
::текущее время в секундах
set /a Ts1=Hs1+Ms1
|
|
Время: 13:11.
© OSzone.net 2001-