Expression Régulière Interval de temps
Résolu/Fermé
Maillon
Messages postés
156
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
15 avril 2011
-
6 mars 2009 à 17:11
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 - 9 mars 2009 à 17:28
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 - 9 mars 2009 à 17:28
A voir également:
- Expression Régulière Interval de temps
- Blocage agriculteur carte en temps réel - Guide
- Renommer plusieurs fichiers en même temps - Guide
- 2 go internet combien de temps ✓ - Forum Mobile
- Ss06 snapchat combien de temps - Forum Snapchat
- 35 go internet combien de temps ✓ - Forum Free mobile
10 réponses
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
6 mars 2009 à 17:19
6 mars 2009 à 17:19
hello
utilise le temps en secondes : date +%s
ça simplifie les calculs
utilise le temps en secondes : date +%s
ça simplifie les calculs
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
6 mars 2009 à 17:24
6 mars 2009 à 17:24
Salut,
Utilises le format "EPOCH" de la commande "date" (man date, info date) et compare les valeurs retournées :
Utilises le format "EPOCH" de la commande "date" (man date, info date) et compare les valeurs retournées :
[tmpfs]$ date --date='1970-01-01 18:35' +%s 63300 [tmpfs]$ date --date='1970-01-01 18:25' +%s 62700 [tmpfs]$;-))
Maillon
Messages postés
156
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
15 avril 2011
5
6 mars 2009 à 17:39
6 mars 2009 à 17:39
Merci à vous deux, cependant deux soucis à ça :
d'une part je suis sous SunOS et la commande de jipicy ne marche pas. Le %s n'est pas reconnu apparement.
d'autre part il faut que je compare les deux valeurs (que j'arrive pas à avoir) et que je fasse un c'est égal + ou - à ça. Seulement je sais pas comment faire ça.
Cordialement,
d'une part je suis sous SunOS et la commande de jipicy ne marche pas. Le %s n'est pas reconnu apparement.
d'autre part il faut que je compare les deux valeurs (que j'arrive pas à avoir) et que je fasse un c'est égal + ou - à ça. Seulement je sais pas comment faire ça.
Cordialement,
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
6 mars 2009 à 18:13
6 mars 2009 à 18:13
utiliser perl
perl -e 'print time();'
perl -e 'print time();'
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Maillon
Messages postés
156
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
15 avril 2011
5
9 mars 2009 à 09:49
9 mars 2009 à 09:49
Merci dubcek mais je préfèrerai savoir le faire en shell, je pense que c'est possible en utilisant une expression régulière mais j'arrive pas à trouver laquelle.
Je vais continuer à chercher.
Merci de votre aide.
Cordialement,
Je vais continuer à chercher.
Merci de votre aide.
Cordialement,
Maillon
Messages postés
156
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
15 avril 2011
5
9 mars 2009 à 11:05
9 mars 2009 à 11:05
En fait il faudrait que je convertisse la date actuelle en seconde (je la met dans une variable $a) puis je convertis 15 min en seconde (dans une variable $b) puis je fais :
si $A est compris entre A+B ou A-B alors OK sinon KO.
Voilà seulement ya un hic c'est que l'option %s (qui permet de convertir une date en seconde) ne marche pas sous sunOs apparement.
Cordialement,
si $A est compris entre A+B ou A-B alors OK sinon KO.
Voilà seulement ya un hic c'est que l'option %s (qui permet de convertir une date en seconde) ne marche pas sous sunOs apparement.
Cordialement,
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
9 mars 2009 à 11:15
9 mars 2009 à 11:15
Ben à ce moment là tu le fais manuellement en récupérant l'heure (date +%H:%M) que tu transformes en secondes via bc.
Maillon
Messages postés
156
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
15 avril 2011
5
9 mars 2009 à 11:40
9 mars 2009 à 11:40
Merci jipicy pour ta réponse ;-)
J'ai regarder la commande bc et ça à l'air d'être un truc de pas mal .... quand tu sais l'utiliser mais franchement j'y comprends absolument rien à cette commande.
Je continue à essayer de comprendre mais est ce que tu aurais des exemples qui se rapprochent de ce que je souhaite pour que je puisse comprendre un peu mieux ?
Merci.
Cordialement,
J'ai regarder la commande bc et ça à l'air d'être un truc de pas mal .... quand tu sais l'utiliser mais franchement j'y comprends absolument rien à cette commande.
Je continue à essayer de comprendre mais est ce que tu aurais des exemples qui se rapprochent de ce que je souhaite pour que je puisse comprendre un peu mieux ?
Merci.
Cordialement,
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
9 mars 2009 à 11:50
9 mars 2009 à 11:50
la comande perl -e 'print time();' est l'équivalent de date +%s
rien de plus
rien de plus
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
9 mars 2009 à 11:52
9 mars 2009 à 11:52
# On récupère l'heure jp@MDK:~/tmpfs ssh$ DATE=$(date +%H:%M) # On vérifie jp@MDK:~/tmpfs ssh$ echo ${DATE} 11:41 # on affiche que les heures jp@MDK:~/tmpfs ssh$ echo ${DATE%:*} 11 # on affiche que les minutes jp@MDK:~/tmpfs ssh$ echo ${DATE#*:} 41 # on calcule les secondes (nbre heures X 3600) + (nbre minutes X 60) jp@MDK:~/tmpfs ssh$ echo "(${DATE#*:} * 3600) + (${DATE%:*} * 60)" | bc 148260 # ça c'est les 15 minutes de battements en secondes jp@MDK:~/tmpfs ssh$ echo "15 * 60" | bc 900 jp@MDK:~/tmpfs ssh$Je te laisse calculer l'intervalle...
Maillon
Messages postés
156
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
15 avril 2011
5
9 mars 2009 à 17:28
9 mars 2009 à 17:28
En fait j'ai trouvé une autre solution plus compliqué mais que je comprends tout le temps lol :-)
Là voilà :
# heure de la machine maître
heure1=`date +%H`
minute1=`date +%M`
seconde1=`date +%S` h1=`expr $heure1 \* 3600`
m1=`expr $minute1 \* 60`
hm1=`expr $h1 + $m1`
date1=`expr $hm1 + $seconde1`
# heure de la machine distante
heure2=`date +%H`
minute2=`date +%M`
seconde2=`date +%S` h2=`expr $heure2 \* 3600`
m2=`expr $minute2 \* 60`
hm2=`expr $h2 + $m2`
date2=`expr $hm2 + $seconde2`
# 15 min c'est 900 secondes donc :
interval=900
bipplus=`expr $date1 + $interval`
bipmoins=`expr $date1 - $interval`
if ( [ $date2 -le $bipplus ] && [ $date2 -ge $bipmoins ] )
then
echo "ok";
else
echo "ko";
fi
Je vais essayer de faire un code plus propre avec la méthode de jipicy. Par contre le perl c'est pas encore pour moi même si je m'y met un peu j'aime pas trop l'utiliser encore mais merci quand même dubcek.
En tout cas merci jipicy et dubcek pour votre aide qui me sera utile à l'avenir.
Cordialement,
Là voilà :
# heure de la machine maître
heure1=`date +%H`
minute1=`date +%M`
seconde1=`date +%S` h1=`expr $heure1 \* 3600`
m1=`expr $minute1 \* 60`
hm1=`expr $h1 + $m1`
date1=`expr $hm1 + $seconde1`
# heure de la machine distante
heure2=`date +%H`
minute2=`date +%M`
seconde2=`date +%S` h2=`expr $heure2 \* 3600`
m2=`expr $minute2 \* 60`
hm2=`expr $h2 + $m2`
date2=`expr $hm2 + $seconde2`
# 15 min c'est 900 secondes donc :
interval=900
bipplus=`expr $date1 + $interval`
bipmoins=`expr $date1 - $interval`
if ( [ $date2 -le $bipplus ] && [ $date2 -ge $bipmoins ] )
then
echo "ok";
else
echo "ko";
fi
Je vais essayer de faire un code plus propre avec la méthode de jipicy. Par contre le perl c'est pas encore pour moi même si je m'y met un peu j'aime pas trop l'utiliser encore mais merci quand même dubcek.
En tout cas merci jipicy et dubcek pour votre aide qui me sera utile à l'avenir.
Cordialement,
6 mars 2009 à 17:25