Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нужно было вывести даты с шагом в 7 дней. На самом деле можно вычитать любое количество дней из даты и задавать любое количество шагов:
Так что не только текущая дата минус одна неделя.

Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

set date=08.03.2021
set n=7
set m=20

echo.
echo Start:	%date%
echo Day:	-%n%
echo Step:	%m%
echo.

for /l %%i in (1,1,%m%) do (
call :date
)
pause > nul
exit

:date
set d=%date:~0,2%
set m=%date:~3,2%
set y=%date:~6,4%

if %d:~0,1%==0 set d=%d:~1%
if %m:~0,1%==0 set m=%m:~1%

set /a feb=y%%4
if %feb%==0 (set feb=29) else (set feb=28)

set /a tok=m-1
if %tok%==0 set tok=12
for /f "tokens=%tok%" %%i in ("31 %feb% 31 30 31 30 31 31 30 31 30 31") do (
   set /a d-=7
    if !d! LSS 0 (
        set /a d=%%i!d!
        set m=%tok%
        if !m!==12 set /a y-=1
    )
	if !d! EQU 0 (
        set d=%%i
        set m=%tok%
        if !m!==12 set /a y-=1
	)
)
set d=0%d%
set m=0%m%
set date=%d:~-2%.%m:~-2%.%y%

echo %date%
exit /b

Отправлено: 18:14, 29-09-2021 | #19