ошибки в скрипте "Использование даты на день раньше чем сегодня"
http://forum.ru-board.com/topic.cgi?forum=62&topic=6156&start=1120#7 в вин 2003 неверно рассчитается дата при системных датах
01.01.2007 - выдается 31.00.2007
первый день любого месяца - выдается последний день текущего месяца но сам месяц будет предыдущим. 01.02.2007 - выдается 28.01.2007
с 1 по 11 октября, ноября и декабря. - 02.11.2007 - выдается 1.11.2007 отсутствует нолик
переписал скрипт так:
Код: set T_Date=%DATE%
IF %T_DATE:~0,1%==0 (
SET /A T_DAY=%T_DATE:~1,1%) else (
SET /A T_DAY=%T_DATE:~0,2%)
IF %T_DATE:~3,1%==0 (
SET /A T_MONTH=%T_DATE:~4,1%) else (
SET /A T_MONTH=%T_DATE:~3,2%)
SET /A T_YEAR=%T_DATE:~6,4%
SET /A T_DAY=%T_DAY%-14
:rc
IF %T_DAY% LEQ 0 (
SET /A T2_DAY=%T_DAY
SET /A T_DAY=0
SET /A T_MONTH=%T_MONTH%-1) else (
SET /A T2_DAY=0)
if %T_DAY%==0 (
if %T_MONTH%==1 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==2 (Set /A T_Day=%T2_DAY%+28)
if %T_MONTH%==3 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==4 (Set /A T_Day=%T2_DAY%+30)
if %T_MONTH%==5 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==6 (Set /A T_Day=%T2_DAY%+30)
if %T_MONTH%==7 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==8 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==9 (Set /A T_Day=%T2_DAY%+30)
if %T_MONTH%==10 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==11 (Set /A T_Day=%T2_DAY%+30)
if %T_MONTH%==12 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==0 (
set /A T_YEAR=%T_YEAR%-1
SET /A T_MONTH=12
set /A T_DAY=%T2_DAY%+31)
)
)
if %T_DAY% LEQ 0 goto rc
if %T_MONTH% LSS 10 (
if %T_DAY% LSS 10 (
Set dt3=0%t_Day%.0%t_Month%.%t_Year%)
else Set dt3=%t_Day%.0%t_Month%.%t_Year%)
else (
if %T_DAY% LSS 10 (
Set dt3=0%t_Day%.%t_Month%.%t_Year%)
else Set dt3=%t_Day%.%t_Month%.%t_Year%)
echo %dt3%