evgeni666
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Представленный в ветке пример вычисления предыдущей даты не учитывает високосные года, что в следующем году почувствуют многие Вот правильный алгоритм расчета предыдущей даты. Цитата: @echo off for /f "skip=2 tokens=2*" %%i in ('reg QUERY "HKCU\Control Panel\International" /v sDate') do set sdate=%%j for /f "delims=%sdate% tokens=1,2,3" %%i in ("%DATE%") do call :getpackage %%i %%j %%k :: проверочка echo %year% echo %month% echo %day% echo %package% :: тут можно поместить необходимые нам команды goto :EOF :getpackage set day=%1 set month=%2 set /a year=%3 set lastdays="31 28 31 30 31 30 31 31 30 31 30 31" if %day% leq 9 set /a day=%day:~-1% if %month% leq 9 set /a month=%month:~-1% set /a day-=1 if "%day%"=="0" set /a month-=1 if "%month%"=="0" set /a month=12,year-=1 set /a isleap="(year%%4)&((year%%100)|(year%%400))" if "%isleap%"=="0" set lastdays=%lastdays:28=29% if "%day%"=="0" for /f "tokens=%month%" %%i in (%lastdays%) do set day=%%i if %day% leq 9 set day=0%day% if %month% leq 9 set month=0%month% set package=%year%-%month%-%day% goto :EOF |
| Всего записей: 371 | Зарегистр. 22-12-2005 | Отправлено: 16:56 24-01-2007 | Исправлено: evgeni666, 09:59 25-01-2007 |
|