Conversion de date avec AIX
Résolu
tbeghain
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
tbeghain Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
tbeghain Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Conversion de date avec AIX
- Airpods 3 date de sortie - Guide
- Office 2024 date de sortie - Accueil - Bureautique
- Samsung a33 date de sortie - Guide
- Comment enregistrer une conversation avec mon téléphone - Guide
- Jm date désabonnement - Forum Gmail
3 réponses
hello
en Perl
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"
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"