Предположим, у меня есть конкретная дата, хранящаяся в переменной date_m
. Я хочу ((date_m)-25)
свидание.
Например: я 15/09/2014
сохранил в своей переменной, затем я хочу 21/08/2014
вернуть, если вычту 25 из даты, сохраненной в переменной.
В реализации GNU date
для отображения вчерашней даты введите:
$ date --date="1 days ago"
ИЛИ
$ date --date="-1 day"
На ваш вопрос:
$ date --date="25 days ago"
ИЛИ
$ date --date="-25 day"
Для использования с переменными вы можете использовать $()
:
pastDate=$(date --date="-25 day")
echo "$pastDate"
Для общих случаев n
и на конкретную дату:
#!/bin/bash
date1="Tue Sep 2 07:53:47 EEST 2014"
echo "Before? "
read n
date --date="$date1 -$n day"
date
не анализируется15/09/2014
как действительная дата, хотя.Далее указываются дата и количество дней.
Сценарий поворачивает даты в секундах и вычисляет, что такое момент времени 1 (
Tp1
), если количество дней (в секундах) вычитается из заданного момента времени 2 (Tp2
). В конце секунды конвертируется обратно в дату.источник
15/09/2014
не год, а первый.Несколько запоздало, но вот один из способов обработки дат в формате дд / мм / гггг за пределами США с 25-дневной относительной корректировкой:
Предполагается, что оболочка, например
bash
, способная обрабатывать перенаправление строк<<<
, и GNUdate
.источник