Je me demandais s'il existe une fonction Perl intégrée qui ajuste la date si l'on enlève un mois. Par exemple, si la date est le 31, elle sera ajustée à la fin du mois précédent si celui-ci ne compte pas 31 jours.
Je passerais facilement au 30e si ce n'était pour les mois avec 31 jours côte à côte (décembre/janv., juillet/août) et février. Je veux juste stocker la date à une certaine distance de la date actuelle, par exemple.
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$current_date = join("-", (1900+$year), ($mon+1), $mday);
$one_month_ago = join("-", (1900+$year), ($mon), $mday);
$one_year_ago = join("-", (1899+$year), ($mon+1), $mday);
Je peux m'occuper de l'exemple de février car il ne s'applique qu'aux années, mais s'il avait été pris le 31 décembre 2012, le fait d'enlever un mois signifierait le 31 novembre 2012, qui n'existait évidemment pas. Je pensais demander s'il existait une fonction avant de me compliquer la vie... merci :)