Conversion Jour en jour julien

wtfunix Messages postés 52 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
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.

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    quel est l'algorithme pour convertir ?
    1
  2. wtfunix Messages postés 52 Statut Membre
     
    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
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      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
    2. wtfunix Messages postés 52 Statut Membre
       
      oui pardon j'ai mal écris en effet c'est une soustraction =)
      0
    3. wtfunix Messages postés 52 Statut Membre
       
      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
    4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      affiche ce que tu veux pour 1.21
      0
    5. wtfunix Messages postés 52 Statut Membre
       
      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
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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