Qual è l'equivalente BSD del comando linux date per l'aggiunta di giorni / settimane / mesi di sottrazione da una data specifica?

4

Ho una data specifica, ad esempio 2013-10-31 e ho bisogno di determinare con precisione il giorno successivo (prendendo in considerazione l'ora legale, gli anni bisestili, i minuti bisestili, i fusi orari, ecc.). Non ho modo di sapere se la data è alla fine di un mese / anno / ecc. E spero sinceramente di non dovermi preoccupare di questo.

In Linux, digito semplicemente:

date1="2013-10-31"
day_after='date -ud"$date1 1 days" +%Y-%m-%d'

echo "$day_after" => 2013-11-01

Tuttavia, quando provo lo stesso in Darwin / BSD:

date1="2013-10-31"
day_after='date -v1d -ujf"%Y-%m-%d" $date1 +%Y-%m-%d'

echo "$day_after" => 2013-10-01

Come posso ottenere BSD per fare i calcoli di data corretta?

    
posta Joshua Olson 05.11.2013 - 19:22
fonte

1 risposta

4

Devi specificare + nella regolazione della data o BSD presuppone che tu gli stia assegnando un giorno reale del mese da utilizzare.

date1="2013-10-31"
day_after='date -v+1d -ujf"%Y-%m-%d" $date1 +%Y-%m-%d'

echo "$day_after" => 2013-11-01
    
risposta data 05.11.2013 - 19:38
fonte

Leggi altre domande sui tag