Задать вопрос
@Shalidor

Как получить дату -3 дня?

Есть переменная которая получает дату
set sdate=%date:~-10% // 25.04.2022
Как сделать чтоб от него отнималось 3 дня и он получал 22?
  • Вопрос задан
  • 483 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@res2001
Developer, ex-admin
Батники не умеют работать с датами. Все переменные там - строки.
Вы можете вручную разделить дату на составные части и вычислить -3 дня.
Так же можно написать вспомогательный скрипт на JS/VBS, которые умеют работать с датами. В скрипт передавать дату и он будет вычислять -3 дня и выводить ее в stdout, где батником можно эту дату прочитать.
Или же вы можете использовать powershell вместо cmd, там, наверняка, можно решить вашу задачу без лишних телодвижений.

Но вам же для чего-то нужна дата "-3 дня". Если знать для чего вы пытаетесь вычислить такую дату, то может найдутся и другие способы ее решения, без вычисления.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xotkot
@xotkot
хорошо есть и хорошо весьма
как вариант взять левую утилиту и использовать ее, например jq:
jq -nr 'now-3*24*60*60|strftime("%d.%m.%Y")'
выдаст дату на три дня отстоящую от текущей даты

если нужно от конкретно указанной даты:
echo "25.04.2022" | jq -rR 'strptime("%d.%m.%Y")|mktime-3*24*60*60|strftime("%d.%m.%Y")'


заворачиваете всё это в переменную и пользуетесь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы