como adicionar um dia até a data no bash?

24

Por exemplo, tenho data: 4 de agosto de 1993 e quero adicionar 348 dias a ele, como posso fazer isso no bash?

inothemo
fonte

Respostas:

30

Basta usar o datecomando com a -dopção:

$ date -d "1983-08-04 348 days"
Tue Jul 17 00:00:00 BST 1984  

Você pode alterar o formato de saída se desejar:

$ date -d "1983-08-04 2 days" +%Y-%m-%d
1983-08-06                                           
Dave Webb
fonte
1
Você também pode usar o formato da data do OP:date -d "4 August 1993 348 days" +"%d %B %Y"
Pausado até novo aviso.
1
De acordo com data do homem:%F full date; same as %Y-%m-%d
jperelli 2/12/12
12

No bash no Mac OS X, você pode fazer o seguinte:

date -j -v +348d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d

Saída: 1994-07-18

Tom Söderlund
fonte
1
Estive procurando isso por um tempo. Eu aprecio. Eu queria substituir o número "348" por uma variável de um script bash. Eu acabei com NEXT_DATE=$(date -j -v +$(( incrementDays ))d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d)para quem quer fazer isso.
Ian G
1

Aqui está um uso um pouco mais complexo disso:

for i in `seq 1 5`;
do;
  date -d "2014-02-01 $i days" +%Y-%m-%d;
done;

ou com canos:

seq 1 5 | xargs -I {} date -d "2014-02-01 {} days" +%Y-%m-%d
Bohdan
fonte