OVH Cloud OVH Cloud

Calcul d'une durée en korn

6 réponses
Avatar
stephane.ruer
Bonjour,

Un petit soucis de calcul de dur=E9e. Je r=E9cupere des dur=E9es en
secondes qu'il me faut transformer en hh:mm:ss.

Jusqu'a present, une division par 60 faisait tres bien l'affaire et je
bourrinais paisiblement :

$expr 2439 / 60
40.65

et je recuperais ma valeur "arrondie" mais comment affiner la chose ?

Merci

6 réponses

Avatar
lhabert
:

mais comment affiner la chose ?


Qu'entends tu par là?

Avatar
Pascal Bourguignon
writes:

Bonjour,

Un petit soucis de calcul de durée. Je récupere des durées en
secondes qu'il me faut transformer en hh:mm:ss.

Jusqu'a present, une division par 60 faisait tres bien l'affaire et je
bourrinais paisiblement :

$expr 2439 / 60
40.65

et je recuperais ma valeur "arrondie" mais comment affiner la chose ?


% echo 'scale ; 2437 / 60' | bc
40.616666666666

Mais je ne vois pas bien comment "affiner" la chose va t'aider à
convertir les secondes en heures minutes secondes. Pour ça, il suffit
de faire des divisions entières et des soustractions:

h := quotient de sec par 3600
m := quotient de (sec - h*3600) par 60
s := sec - h*3600 - m*60


--
__Pascal Bourguignon__ http://www.informatimago.com/

THIS IS A 100% MATTER PRODUCT: In the unlikely event that this
merchandise should contact antimatter in any form, a catastrophic
explosion will result.

Avatar
Stephane Dupille
Mais je ne vois pas bien comment "affiner" la chose va t'aider à
convertir les secondes en heures minutes secondes. Pour ça, il suffit
de faire des divisions entières et des soustractions:

h := quotient de sec par 3600
m := quotient de (sec - h*3600) par 60
s := sec - h*3600 - m*60


Comme c'est un shell, on peut facilement utiliser (détourner ?) la
commande date pour faire la conversion (attention, il faut passer en
TimeZone GMT pour éviter un éventuel décalage) :

[gimli] ~> TZ=GMT date -r 426 '+%H:%M:%S'
00:07:06

Par contre, je ne sais pas si c'est portable...

--
JA> nous invitons chacun d'entre vous à découvrir notre site afin de
JA> vous faire une idée de notre raison d'être et de nos valeurs...
Et en plus, ils racolent! Allez donc attendre vos soucoupes ailleurs.
-+-GLM in:<http://www.le-gnu.net>- Neuneu bêlant bien identifié -+-

Avatar
Pascal Bourguignon
Stephane Dupille writes:

Mais je ne vois pas bien comment "affiner" la chose va t'aider à
convertir les secondes en heures minutes secondes. Pour ça, il suffit
de faire des divisions entières et des soustractions:

h := quotient de sec par 3600
m := quotient de (sec - h*3600) par 60
s := sec - h*3600 - m*60


Comme c'est un shell, on peut facilement utiliser (détourner ?) la
commande date pour faire la conversion (attention, il faut passer en
TimeZone GMT pour éviter un éventuel décalage) :

[gimli] ~> TZ=GMT date -r 426 '+%H:%M:%S'
00:07:06

Par contre, je ne sais pas si c'est portable...


Ah mais il a dit korn shell, il n'a pas dit GNU date... Je ne sais
pas, il n'y a peut être pas la place sur une disquette pour installer
date, seulement un kernel, ksh et son script...


--
__Pascal Bourguignon__ http://www.informatimago.com/

The world will now reboot. don't bother saving your artefacts.


Avatar
Stephane Chazelas
On Fri, 03 Feb 2006 17:23:21 +0100, Pascal Bourguignon wrote:
[...]
[gimli] ~> TZ=GMT date -r 426 '+%H:%M:%S'
00:07:06

Par contre, je ne sais pas si c'est portable...


Ah mais il a dit korn shell, il n'a pas dit GNU date... Je ne sais
pas, il n'y a peut être pas la place sur une disquette pour installer
date, seulement un kernel, ksh et son script...
[...]


En l'occurrence, ce n'est pas GNU date. Peut-etre BSD date?

Chez GNU, -r c'est pour prendre l'heure d'un fichier a la
place de l'heure courante.

Chez GNU date, c'est "-d" pour specifier une date.

--
Stephane


Avatar
Stephane Dupille
En l'occurrence, ce n'est pas GNU date. Peut-etre BSD date?


C'est effectivement sur un FreeBSD que j'ai essayé.

Chez GNU, -r c'est pour prendre l'heure d'un fichier a la
place de l'heure courante.
Chez GNU date, c'est "-d" pour specifier une date.


C'est bô la portabilité !
:-(

--
Les gens sérieux et raisonnables n'utilisent pas de kill-file.
-+- GM in <http://www.le-gnu.net> : Soyons ridicule jusqu'au bout -+-