Conversion Jour en jour julien

Fermé
wtfunix Messages postés 48 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 25 août 2014 - 31 juil. 2014 à 16:53
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 - 1 août 2014 à 16:59
Bonjour,
j'ai un petit problème de conversion d'un jour en décimal et en chiffre en jour julien. J'ai deux ligne avec une date et je voudrais convertir les jours :

fichier1: 2014 KQ75 2014 06 1.21 0.007667

fichier2: 2014 MV18 2014 06 30 0.0184

J'aurai voulu savoir si vous sauriez comment convertir les jours ( 1.21 pour le fichier 1 et 30 pour le fichier 2) en jour julien ?

je suis déjà parti sur une base de code comme celle-ci :

cat f1|  awk '{ print $3,$4,$5}'  > fichiertest

ligne='sed -n ${1}p fichiertest'
jourg1='echo $ligne | awk '{printf $3 }''
moisg1='echo $ligne | awk '{print $2}''
ang1='echo $ligne | awk '{print $1}''

echo "Annee gregoriennne:" $ang1
echo "Mois gregorien:" $moisg1
echo "Jour gregorien:" $jourg1
intj=${jourg1/.*}
echo "valeur entière:" $intj


heurehh=($intj-$jourg1)

echo "heurehh:" $heurehh

heurej= $heurehh-${heurehh/.*}
echo " heure julien:" $heurej


mais bon... je ne sais pas si je m'y prends bien surtout que les calculs restent sous forment de calculs arithmétiques et n'affiche pas le résultat j'obtiens:

Annee gregoriennne: 2014
Mois gregorien: 06
Jour gregorien: 1.21
valeur entière: 1
heurehh: 1-1.21
./update_neo.sh: ligne118: 1-1.21-1-1 : commande introuvable
heure julien:



Merci d'avance.
A voir également:

3 réponses

dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
1 août 2014 à 14:54
hello
quel est l'algorithme pour convertir ?
1
wtfunix Messages postés 48 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 25 août 2014
Modifié par wtfunix le 1/08/2014 à 15:09
Salut,

est bien l'algorithme est le suivant :
j' ai mon jour en décimal par exemple : 5.39

5.39 ==> int (5.39)=0.39
0.39*24= heure(en décimal) = heurehh

heurehh- int(heurehh)= heure (valeur entière)

heure * 60 = minh
minh - int(minh)= minutes

minutes*60= seconde
0
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
1 août 2014 à 15:51
5.39 ==> int (5.39)=0.39 ??
tu veux dire : 5.39 ==> 5.39 - int (5.39)=0.39
parce que int (5.39)=5
0
wtfunix Messages postés 48 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 25 août 2014
1 août 2014 à 15:52
oui pardon j'ai mal écris en effet c'est une soustraction =)
0
wtfunix Messages postés 48 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 25 août 2014
1 août 2014 à 15:53
int(5.39) va être le nombre de jour en julien après il y aura les heures et les minutes et les secondes ..
0
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
1 août 2014 à 16:04
affiche ce que tu veux pour 1.21
0
wtfunix Messages postés 48 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 25 août 2014
Modifié par wtfunix le 1/08/2014 à 16:15
1.21- int (1.21)=0.21
0.21*24= heurehh=5.04

5.04- int(5.04)=0.04

0.04 * 60 = minh=2.4
2.4 - int(2.4)= minutes=0.4

0.4*60= seconde=24
0
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
1 août 2014 à 16:59
avec les 2 lignes dans 1 fichier, on fait les calculs dans awk, qui lit chaque ligne
$ cat fichier
2014 KQ75 2014 06 1.21 0.007667
2014 MV18 2014 06 30 0.0184
$ awk '{h=($5-int($5))*24; h=h-int(h); m=h*60; m=m-int(m); s=m*60; print h, m, s}' fichier
0.04 0.4 24
0 0 0
$
0