J'ai une date donnée, par exemple 2013-10-31, et je dois déterminer avec précision le jour suivant (en tenant compte de l'heure d'été, des années bissextiles, des minutes bissextiles, des fuseaux horaires, etc.) Je n'ai aucun moyen de savoir si la date se trouve à la fin d'un mois/année/etc, et j'espère sincèrement ne pas avoir à m'en soucier.
Sous Linux, je tape simplement :
date1="2013-10-31"
day_after=`date -ud"$date1 1 days" +%Y-%m-%d`
echo "$day_after" => 2013-11-01
Cependant, lorsque j'essaie la même chose dans Darwin/BSD :
date1="2013-10-31"
day_after=`date -v1d -ujf"%Y-%m-%d" $date1 +%Y-%m-%d`
echo "$day_after" => 2013-10-01
Comment puis-je faire en sorte que BSD calcule correctement les dates ?