Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1314 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Shell : comment ajouter une seconde à une heure donnée?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Shell : comment ajouter une seconde à une heure donnée?

n°1099305
sarah166
Posté le 22-12-2008 à 19:52:55  profilanswer
 

Bonsoir,
J'ai une heure au format HH:MM:SS, par ex 18:57:30
 
Je dois ajouter UNE seconde, par script.
 
J'ai vu que par exemple

Code :
  1. date --date '1 sec'

ajoute une seconde à l'heure système. Cependant apparament je n'ai pas trouvé comment donner à "date" une date d'entrée pour qu'il travaille sur cette date de base et non sur la date système.
 
Y a-t-il une solution?
 
Sinon, comment faire? A savoir que je ne dois pas gérer le jour mais uniquement ajouter une seconde à une heure donnée...
 
Merci :)
 
edit : de préférence en shell script :p


Message édité par sarah166 le 22-12-2008 à 20:13:39
mood
Publicité
Posté le 22-12-2008 à 19:52:55  profilanswer
 

n°1099308
Taz
bisounours-codeur
Posté le 22-12-2008 à 20:10:24  profilanswer
 

fait un bout de perl

n°1099340
raph0001
Posté le 23-12-2008 à 00:13:20  profilanswer
 

Tu as trouvé ta réponse : l'option --date ajoute les différents arguments.
$ date --date "18:57:30 1 sec"
$ date --date "3 min 18:57:30 1 sec"
$ date --date "3 min 8 min"
$ date --date "7 sec 2006-08-07 12:34:56"
 
Une date est forcément "absolue", avec jour, mois, année et heure. Tu ne peux pas avoir "juste une heure". Si tu ne précises pas, ça complète les valeurs manquantes par rapport à la date actuelle.

n°1099351
sarah166
Posté le 23-12-2008 à 01:30:17  profilanswer
 

Je vous remercie pour vos réponses, et en particulier raph0001. C'est exactement ce que je cherchais.
Merci!!

n°1099406
Taz
bisounours-codeur
Posté le 23-12-2008 à 10:41:03  profilanswer
 

pas portable sur les date pas GNU.

n°1102420
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 06-01-2009 à 17:58:35  profilanswer
 

On pose une journée arbitraire, genre le 01/01/2000
 
On convertit en timestamp (secondes depuis le 01/01/1970) cette date + ton truc HH:MM:SS :

date --date="2000-01-01 ${TON_TRUC}" "+%s"


 
On ajoute une seconde. L'addition se fait comme ça :
echo $((42 + 1))   (c'est du bash)
expr 42 + 1  (c'est mieux)
 
On reconvertit au format dd-mm-YY HH:MM:SS

date --date=@"${NOUVEAU_TRUC}" "+%Y-%m-%d %H:%M:%S"


 
On coupe pour virer la partie inutile

cut -d ' ' -f 2


 
 
Le tout assemblé :

$TON_TRUC="12:01:42"
$date --date=@"$(expr $(date --date="2000-01-01 ${TON_TRUC}" "+%s" ) + 1)" "+%Y-%m-%d %H:%M:%S" | cut -d ' ' -f 2
12:01:43


 
 
Étonnant non :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1102428
esox_ch
Posté le 06-01-2009 à 18:30:57  profilanswer
 

Il en faut du code pour rajouter 1 sec à une date dis donc :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1102552
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 07-01-2009 à 07:41:43  profilanswer
 

esox_ch a écrit :

Il en faut du code pour rajouter 1 sec à une date dis donc :o


 
Ben si on veut pas utiliser le "1 sec" faut additionner soi-même. :/
Et si on veut pas faire les conversions à la main faut utiliser date (pas d'API en shell, les commandes sont l'API)  :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Shell : comment ajouter une seconde à une heure donnée?

 

Sujets relatifs
shell et sudo -i[SHELL] Insertion chaine de caractères
Shell boucle et conditionaccès shell vmware esx
heure système : dérèglement de l'heure malgré la présence de ntpd[Résolu]Changer sur les jpg la mauvaise heure d'un appareil photo
echo off comme sous windows lors d'un shell scriptcomment récupéré donnee hdd externe ubuntu 8.04
Modification de la sortie standard dans un scriptLancer un script shell dans un programme c
Plus de sujets relatifs à : Shell : comment ajouter une seconde à une heure donnée?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR