Salut,
voilà un petit code en Perl
La méthode utilisé est de ajouter de secondes EPOCH
- d'abord je converti en secondes EPOCH la date qui se trouve dans la variable
- je fait les manipulations nécessaires
- je permet la saisie d'un nombre de jours de decalage
- je calcule la nouvelle date en secondes EPOCH
- je converti en date
A toi d'adapter.
#!/usr/bin/perl
#
use warnings;use strict;
use Time::Local;
# la date ( aammjj ) contenu dans une variable scalaire
my $d='060824';
my ($a,$m,$j) = unpack("A2" x (length($d)/2), $d);
print "La date initiale : $a$m$j\n";
# conversion en secondes EPOCH
my $ed = timelocal(0,0,0,$j,$m - 1,$a);
# Ajout d'un nombre de jours
print "Entrez le decalage [nombre jours] : ";
chomp(my $decalage = <STDIN>);
my $intervalle = $decalage * 60 * 60 * 24;
# calculer la nouvelle date
my $resultat = $ed + $intervalle;
# conversion de secondes EPOCH en date format aammjj
my ($jj,$mm,$aa) = (localtime($resultat))[3,4,5];
$jj = sprintf("%02d",$jj);
$mm = sprintf("%02d",$mm + 1);
$aa = substr(($aa + 1900),-2);
my $d_res = "$d + $decalage : $aa$mm$jj";
print "$d_res\n";
__END__Une autre méthode pourra être l'utilisation du moduel
Date::Calc du CPAN.
lami20j