Tengo una fecha dada, como 2013-10-31 y necesito determinar con precisión el día siguiente (teniendo en cuenta el DST, los años bisiestos, los minutos bisiestos, las zonas horarias, etc). No tengo forma de saber si la fecha está al final de un mes/año/etc, y sinceramente espero no tener que preocuparme por eso.
En Linux, simplemente escribo:
date1="2013-10-31"
day_after=`date -ud"$date1 1 days" +%Y-%m-%d`
echo "$day_after" => 2013-11-01
Sin embargo, cuando intento lo mismo en Darwin/BSD:
date1="2013-10-31"
day_after=`date -v1d -ujf"%Y-%m-%d" $date1 +%Y-%m-%d`
echo "$day_after" => 2013-10-01
¿Cómo puedo conseguir que BSD haga los cálculos de fecha adecuados?