Conversion de date avec AIX
Résolu/Fermé
tbeghain
Messages postés
58
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
22 février 2021
-
Modifié par tbeghain le 1/12/2015 à 11:41
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 - 1 déc. 2015 à 15:36
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 - 1 déc. 2015 à 15:36
A voir également:
- Conversion de date avec AIX
- Jm date désabonnement ✓ - Forum Consommation & Internet
- Airpods 3 date de sortie - Guide
- Trouver une date de naissance gratuit ✓ - Forum Google Chrome
- Trouver date et lieu de naissance d'une personne - Forum Réseaux sociaux
3 réponses
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
1 déc. 2015 à 12:07
1 déc. 2015 à 12:07
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
tbeghain
Messages postés
58
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
22 février 2021
3
1 déc. 2015 à 12:14
1 déc. 2015 à 12:14
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
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
1 déc. 2015 à 12:28
1 déc. 2015 à 12:28
pas en C ?
tbeghain
Messages postés
58
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
22 février 2021
3
>
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
1 déc. 2015 à 12:53
1 déc. 2015 à 12:53
Ben non, je ne connais pas le C.
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
Modifié par dubcek le 1/12/2015 à 13:05
Modifié par dubcek le 1/12/2015 à 13:05
$ cat date.c
#include <stdio.h>
#include <time.h>
main(int argc, char **argv)
{
struct tm tm;
char buf[128];
strptime(argv[1],"%j %y", &tm);
strftime(buf, sizeof(buf), "%d/%m/%y", &tm);
printf("%s\n", buf);
}
$ make date
cc date.c -o date
$ ./date "335 15"
01/12/15
$
tbeghain
Messages postés
58
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
22 février 2021
3
1 déc. 2015 à 15:36
1 déc. 2015 à 15:36
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"