Script qui multiplie automatiquement par deux le résultat final
bonjour,
j'ai (avec la participation de quelques uns d'entre vous) créé le script ci-dessous qui doit me remonter l'écart de jours entre deux dates données, par contre la finalité serait que ce résultat soit multiplié par deux, mais comment faire ?
Merci de votre aide .
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #!/bin/bash
dateDiff(){
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
result=$(date -d "1970-01-01 UTC $((d1-d2-86400)) seconds" +"%j")
echo ${result}
}
if [ $# -ge 2 ]; then # Si deux paramètres passés au script
d1=$1
d2=$2
else
echo "Saisir les dates d1 et d2 :"
read d1
read d2
fi
dateDiff $d1 $d2 |
Script qui multiplie automatiquement par deux le résultat final
J'ai essayé mais cela ne fonctionne pas. (ci-dessous le script modifié)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #!/bin/bash
dateDiff(){
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
result=$(date -d "1970-01-01 UTC $((d1-d2-86400)) seconds" +"%j")
echo $(($(datediff $d1 $d2) * 2))
}
if [ $# -ge 2 ]; then # Si deux paramètres passés au script
d1=$1
d2=$2
else
echo "Saisir les dates d1 (date + récente) et d2 (date + ancienne) au format aaaammjj :"
read d1
read d2
fi
dateDiff $d1 $d2 |
Script qui multiplie automatiquement par deux le résultat final
Le format est le suivant ==> aaaammjj, mais j'ai tout le temps le même écart entre les jours recherchés, c'est à dire 730.
Script qui multiplie automatiquement par deux le résultat final
Bonjour N_BaH,
Merci de ton aide précieuse, je clos le post.
Bonne journée.
script qui multiplie par deux mon resultat final
Bonjour,
j'ai crée un script avec l'aide de certains d'entre vous (merci à eux d'ailleurs une fois de plus) qui compte le nombre de jours entre deux dates (script ci-dessous)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #!/bin/bash
dateDiff(){
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
result=$(date -d "1970-01-01 UTC $((d1-d2-86400)) seconds" +"%j")
echo ${result}
}
if [ $# -ge 2 ]; then # Si deux paramètres passés au script
d1=$1
d2=$2
else
echo "Saisir les dates d1 et d2 :"
read d1
read d2
fi
dateDiff $d1 $d2 |
Ma question est la suivant, j'aimerai savoir comment faire pour multiplier le resultat par deux car j'ai deux fichiers par jour?
Merci de votre aide par avance...
script qui multiplie par deux mon resultat final
Jack, le problème c'est que pour les même dates le script de N_BAH me remonte 7 (écart entre 20121007 et 20121001) et que moi et je te le répète en rentrant les mêmes dates et avec le même script il me remonte 6 .
tu sais d’où vient le problème, ce n'est pas le paramètre 86400 qui pose problème??
Merci de ton aide ci-dessous le script
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #!/bin/bash
dateDiff(){
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
result=$(date -d "1970-01-01 UTC $((d1-d2-86400)) seconds" +"%j")
echo ${result}
}
if [ $# -ge 2 ]; then # Si deux paramètres passés au script
d1=$1
d2=$2
else
echo "Saisir les dates d1 et d2 :"
read d1
read d2
fi
dateDiff $d1 $d2 |
Script qui multiplie automatiquement par deux le résultat final
Bonjour,
Tout d'abord merci de vos réponses, je pense ne pas avoir été clair dans ma formulation, en fait je dois créer un script qui compte le nombre de jour entre deux dates et multiplie le résultat par deux.
Avec l'aide de certains d'entre vous j'ai réalisé le script (ci-dessous) qui je le pensais marchait bien car en entrant comme date 20120710 et 20120702 j’obtiens bien 16, par contre lorsque je rentre en paramètre 20121007 et 20121001 j'ai un résultat de 12 alors que je devrais avoir 14.
Je ne sais pas si c'est un pb de date "flottante" ou de seconde (+1 ou -1) ou autre d'ailleurs, et j’avoue que je cale complétement sur ce problème.
Merci de votre aide en espérant avoir été plus clair cette fois ci.
Code:
1 2 3 4 5 6 7 8 9 10
| #!/bin/bash
if [ $# -lt 2 ]
then
echo "Saisir les dates d1 (date + récente) et d2 (date + ancienne) au format aaaammjj :"
read d1
read d2
set -- $d1 $d2
fi
echo $(( ( $(date -d "$1" +%s) - $(date -d "$2" +%s) ) / 86400 *2)) |
Script qui multiplie automatiquement par deux le résultat final
Bonjour,
Merci de ton retour Jack, en fait je dois avoir pour les dates 20121007 à
20121001 un résultat de 14 et pour les dates 20120710 à 20120702 un resultat de 16, je ne sais pas si la valeur 86400 pose un pb pour ce type de calcul en fait et ne pense pas que les poteaux ou intervalles rentre en compte dans ce type de calcul malheureusement, je cherche toujours mais vraiment pas evident.
Merci de votre aide car la je sèche vraiment.
Script qui multiplie automatiquement par deux le résultat final
Merci de ta réponse, en fait je n'ai que trois exemples car j'ai n'ai besoin de générer des fichiers que pour les trois dates ci-dessous:
20121007 à 20121001 je dois avoir 14 (7x2)
20120710 à 20120702 je dois avoir 16 (8x2)
20120101 à 20110704 je dois avoir 364 (182 x2)
Voila ..