Fonction GetDate, problème si j'enlève 7 jrs

Fermé
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 - 5 nov. 2009 à 14:41
Bonjour,
j'utilise la fonction ci-dessous, copiée du net et qui me retourne parfaitement la date de la veille par exemple.
Cela fonctionne si j'enlève jusqu'à 6 jours, si j'enlève 7, la fonctionne me retourne une mauvaise date :-(
Quelqu'un pourrait-il me dire pourquoi ? et me corriger cette fonction ?
Merci d'avance

GetDate()
{ # GetDate nDays [format]
# Exemple d'utilisation: export NAMEDIR=$(GetDate -1 '+%Y%m%d')

typeset -i nDays=$1; format=$2
eval $(echo $TZ | sed '
s!\([^-0-9]*\)\([-0-9]*\)\(.*\)!typeset -i localOffset=\2;zon1=\1;zon2=\3!')
TZ=$zon1$((localOffset-24*nDays))$zon2 date $format

}
Exemple, nous sommes le 02 nov 2009
TODAY=$(GetDate 0 '+%Y%m%d')
echo "Date du jour : $TODAY"
#echo retourne "Date du jour : 20091102"

TODAY=$(GetDate -6 '+%Y%m%d')
echo "Date du jour -6: $TODAY"
#echo retourne "Date du jour : 20091027"

TODAY=$(GetDate -7 '+%Y%m%d')
echo "Date du jour -7: $TODAY"
#echo retourne "Date du jour : 20091102" ????
A voir également: