Différence de temps, basique et pourtant

Bonjour, je me creuse la tête ( apparemment je ne suis pas le seul) sur un problème simple:
Calculer la différence entre deux horaires dans une même journée.
La seule chose que j’ai réussi à obtenir c’est un résultat aléatoire :
2300-2200=60
Ou
2300-2200=100
Les horaires sont des variables.

J’ai tenté les fonctions Time-op , Time-diff … sans résultat.

Si vous avez une solution…
Merci

1 « J'aime »

Comment obtient tu ces horaires ?

Le Time_op est utilisé pour faire une opération sur une heure au format jeedom (hhmm), comme rajouter ou enlever 30min
Le Time_diff nécessité 2 heures aux format jj/mm/yyyy hh:mm:ss.

Dans les 2 cas, je pense que ça ne te convient pas

Il y a plein d’autres solutions mais il faut savoir comment sont générées ces heures/minutes.

Norbert

Merci pour ta réponse. Pour faire simple je retranche 2 variables issus chacune d’un time_op. sur le papier cela semble fonctionner, puisque je retranche 2 unités de temps comparable, et pourtant cela ne fonctionne pas.

1 « J'aime »

Et tu ne peux pas gérer ceci avec des #timestamp# ?
Plutôt que des time_op, tu fait des timestamp± x*60secondes et tu peux soustraire sans difficulté tes timestamp pour avoir une différence en seconde

Norbert

ahrrr , c’est un peu tiré par les cheveux mais c’est une piste que je vais explorer. je m’aperçois que c’est la 2éme fois que je bute sur un problème pourtant simple. il manque une fonction a mon gout :slight_smile: Merci

Question : je peux prédire un #timestamp# ? c’est a dire à 22h00 le Timestamp aura cette valeur ou je dois lancer un scenario du genre : A 2200 affecte #timestamp à la variable bidule ?Merci

Prédire un timestamp :smile:.

Rien d’extraordinaire, dans ton scénario
A 2200 alors variable bidule = #timestamp#

Mais je dirais bien que ça va pas aller comme tu veux.

Dit nous ce que tu veux faire en mettant des captures de ce que tu as déjà, je pense que ça ira plus vite pour t’aider :wink:.

En effet prédire le Timestamp à l’oral c’est simple :slight_smile:
mais sans la fonction A je ne sais pas comment faire.

je n’en suis qu’au brouillon, pas grand chose a montrer.
je cherche à simuler une présence en me calant sur mon rythme de vie avec des donnés aléatoires.
en gros ce que je veux :

-de 21H a 22h tu déclenches la lumière après le couché du soleil de manière aléatoire. (ca c’est ok)
-la lumière s’allume un temps aléatoire mais ne dois pas dépasser les 22H (plus compliqué)

Ok donc puisque la lumière sera allumée entre 21h et 22h suite au couché du soleil et qu’elle ne devra pas être allumée après 22h tu vas bien pouvoir faire une soustraction simple.

Quand la lumière s’allume le scénario se déclenche pour programmer l’extinction dans X minutes
La durée maximum est 2200-#time#
Donc reste juste à ajouter le coté aléatoire avec rand donc basiquement :

DANS rand(5, 2200-#time#) alors OFF

5mn minutes minimum ici pour l’exemple mais tu mets ce que tu veux

EDIT : je suis fatigué moi … ça fait 100 2200-2100 :upside_down_face:

Ça fonctionne, ça ?. Pour moi, 2200 - #time#, soit 2200 - 2130 fait 70, et pas 30

Cet horrible problème :smiling_imp:

1 « J'aime »

je vais plutôt me diriger vers le #timestamp#, il me reste à trouver comment le prédire sans passer par la case A: :innocent:

Par contre, pour définir l’heure d’extinction, tu peux juste faire un

time_op(2200,-rand(0,15))

Tu auras ainsi une heure randomisée entre 21h45 et 22h

pour avoir le timestamp de 22h sans passer par un truc trop compliqué …

strtotime(today 22:00)

Oui, mais comme je suis pénible je souhaite faire
time_op(2200,-rand(0,X))
sachant que X= (2200-couchédusoleil)min
et c’est Po facile :joy: !

Ah, je me jette sur strtotime(today 22:00). je pense que la solution passe par la !!!
Merci à vous @ngrataloup et @Bison

Bon ben un moyen en récupérant les minutes de l’heure actuelle et en faisant la différence avec 60 pour avoir le nombre de minutes restantes avant 22h (à partir de 21h).

C’est pas terrible, la proposition de @ngrataloup est mieux mais c’était histoire de :slight_smile:

rand(5,60-substr(#time#,2,2))
1 « J'aime »

Peu importe, merci pour l’aide, pour le coup j’apprends grace à vous de nouvelles fonctions et c’est parfait. Merci

pour generer une durée aléatoire entre l’allumage (#timestamp#) et 22:00 avec un DANS

DANS floor( rand(0,strtotime(today 22:00) - #timestamp#) / 60 ) faire OFF

tu peux remplacer le 0 par 5 ou 10, si tu souhaites une durée minimum d’allumage

2 « J'aime »

je m’y mets ! Merci

Mon brouillon fonctionne !
En résumé ma lumière va s’allumer de manière aléatoire après le couché du soleil, avant 22h et pendant une durée Aléatoire n’excédant pas 22h !

Merci !