Conversion de date avec AIX
Résolu
tbeghain
Messages postés
63
Statut
Membre
-
tbeghain Messages postés 63 Statut Membre -
tbeghain Messages postés 63 Statut Membre -
Bonjour,
J'ai un AIX 6.1.
J'ai regardé les post au sujet des conversions de date, mais les solutions demandent d'utiliser une commande qui n'existe pas avec AIX :
date --date
Donc sous AIX, j'ai deux variables avec un quantième et une année (exemple 335 15 qui correspond au 1er decembre 2015). Et je veux, à partir de ce quantieme retrouver une date avec le format jj/mm/aa (pour l'exemple 01/12/15). Comme puis-je faire en shell ? Merci
J'ai un AIX 6.1.
J'ai regardé les post au sujet des conversions de date, mais les solutions demandent d'utiliser une commande qui n'existe pas avec AIX :
date --date
Donc sous AIX, j'ai deux variables avec un quantième et une année (exemple 335 15 qui correspond au 1er decembre 2015). Et je veux, à partir de ce quantieme retrouver une date avec le format jj/mm/aa (pour l'exemple 01/12/15). Comme puis-je faire en shell ? Merci
3 réponses
-
hello
en Perl$ perl -e 'use Time::Piece; my $t=Time::Piece->strptime($ARGV[0], "%j %y "); print $t->strftime("%d/%m/%y\n")' "335 15"
01/12/15 -
Bonjour, mais j'ai pas Perl sur mon AIX, et je n'ai pas la possibilité de le rajouter. Je cherche une syntaxe en shell et uniquement en shell s'il vous plait. Merci
-
Bonjour,
Voilà ce que j'ai fait. C'est peut être pas optimum, mais ça marche. Au cas où ça pourrait intéresser quelqu'un.
ANNEE=$1
QUANT=$2
if [[ $ANNEE -le 0 ]] then
echo "Année incorrecte"
exit
fi
if [[ $(($ANNEE % 4)) -eq 0 && $(($ANNEE % 100)) -ne 0 || $(($ANNEE % 400)) -eq 0 ]] then
echo " $ANNEE est bissextile"
BIS=1
else
echo "$ANNEE non bissextile"
BIS=0
fi
BORNSUP=`expr 365 + $BIS`
if [[ $QUANT -le 1 || $QUANT -gt $BORNSUP ]] then
echo "quantieme incorrect"
exit
fi
TABJOUR[1]=31
TABJOUR[2]=`expr $BIS + 59`
TABJOUR[3]=`expr $BIS + 90`
TABJOUR[4]=`expr $BIS + 120`
TABJOUR[5]=`expr $BIS + 151`
TABJOUR[6]=`expr $BIS + 181`
TABJOUR[7]=`expr $BIS + 212`
TABJOUR[8]=`expr $BIS + 243`
TABJOUR[9]=`expr $BIS + 273`
TABJOUR[10]=`expr $BIS + 304`
TABJOUR[11]=`expr $BIS + 334`
TABJOUR[12]=`expr $BIS + 366`
CPT=1
while [[ ${TABJOUR[$CPT]} -le $QUANT ]]
do
CPT=`expr $CPT + 1`
done
echo "CPT=$CPT"
if [[ $CPT -eq 1 ]] then
LeJour=$QUANT
LeMois=1
else
CPT2=`expr $CPT - 1`
LeJour=`expr $QUANT - ${TABJOUR[$CPT2]}`
LeMois=$CPT
fi
echo "$LeJour/$LeMois/$ANNEE"