Lista de datas que ocorrem em intervalos de n dias no intervalo de datas [closed]

0

Eu gostaria de fornecer um intervalo de datas e um número r (n) e listar todas as datas que ocorrem em intervalos de n dias nesse intervalo.

Por exemplo, se a data de início for 22 de abril de 2017 e a data final for 19 de dezembro de 2017, quero imprimir as datas em etapas de 11 dias a partir de 22 de abril de 2017. A primeira data seria 3 de maio de 2017. um 14 maio 2017 e assim por diante. Neste exemplo n = 11.

    
por elmclose 21.08.2017 / 12:00

1 resposta

2
start="22 April 2017"
end=$(date +%s -d "19 December 2017")
i=0
while (($(date +%s -d "$start + $i days") < end))
do
    date +%F -d "$start + $i days"
    ((i+=11))
done

O GNU date permite expressões como <date> + <n> days . +%s é o timestamp do Unix e +F da data em YYYY-MM-DD .

Saída:

2017-04-22
2017-05-03
2017-05-14
2017-05-25
2017-06-05
2017-06-16
2017-06-27
2017-07-08
2017-07-19
2017-07-30
2017-08-10
2017-08-21
2017-09-01
2017-09-12
2017-09-23
2017-10-04
2017-10-15
2017-10-26
2017-11-06
2017-11-17
2017-11-28
2017-12-09
    
por muru 01.09.2017 / 16:56