Aller au contenu

Help!! comparer/mesurer l’écart entre 2 dates/time


Messages recommandés

Posté(e) (modifié)
Il y a 12 heures, jjacques68 a dit :

c'est un peu l'usine à gaz oui, j'avoue ne pas tout saisir,

je prends ce que tu me donnes en passant :) 

l'essentiel est de faire marcher comme tu veux.

après on pourra rendre le code plus propre :)

:2: oui c'est clair et c'est déjà Top :60:

REPORTING_ARROSAGE (1).vfib

Modifié par flamalex
  • 2 mois après...
Posté(e)

Bonjour à tous,

Dans un VD j'essaye de calculer la différence de temps (en jours) entre 2 dates.

N'étant pas du métier, cela est très difficile pour moi, je me suis donc penché sur votre VD pour essayer de récupérer une partie de votre code.

MAIS, je n'arrive pas à avoir la différence en jours ? (j'ai certainement fait une erreur)

local date_actuelle = os.time()
fibaro:debug('date_actuelle= ' ..date_actuelle)
       

local date1 = tonumber "17/06/2020" 
    fibaro:debug('date1= ' ..date1)
         
local diff_des_2_dates = os.difftime (date_actuelle, date1)
fibaro:debug(diff_des_2_dates/(24*60*60).." jour(s)")

Merci pour votre aide

 

 

Posté(e) (modifié)

tu le retrouves dans mon VD

puisque je compare les dates « aujourd’hui - date de la dernière pluie = nbr de jour passés sans pluie »

 

alors oui ça ne plaira pas à tt le monde pcq tu auras des « , » exemple 5,66jrs passés sans pluie mais il faut comprendre l’interet, dans mon cas, c’est de matcher une consigne (exemple 5jrs) avec le temps ecoulé entre 2 dates pour etre traité par programme sans intervention humaine

d’ou mon VD « de supervision » dans lequel on ne va jamais :) 

rdv ici pour le VD complet

 

 

Modifié par flamalex
Posté(e)

Salut @flamalex

J'avais bien vu le sujet, d'ou mon intérêt :2:

Mais j'ai un souci, j'ai recopié ton code MAIS j'ajoute la date time_last_rain en manuel

--Insere la date dans time_last_rain en manuel
fibaro:setGlobal('time_last_rain', "17/06/2020")

local date_derniere_pluie = tonumber(fibaro:getGlobalValue("time_last_rain"))
local ma_date_en_toute_lettre = os.date("%d/%m/%Y - %H:%M:%S",date_derniere_pluie)
fibaro:debug(ma_date_en_toute_lettre)
--fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LastRain.value", ma_date_en_toute_lettre)
--------------------------
-- on mesure la difference entre 2 dates
print ("date derniere pluie")  
local date_derniere_pluie = tonumber(fibaro:getGlobalValue("time_last_rain"))
fibaro:debug(os.date("%d/%m/%Y - %H:%M:%S",date_derniere_pluie))
  
print ("date actuelle")  
local date_actuelle = os.time()  
fibaro:debug(os.date("%d/%m/%Y - %H:%M:%S",date_actuelle))  
   
print ("diff_des_2_dates")
local diff_des_2_dates = os.difftime (date_actuelle, date_derniere_pluie)
fibaro:debug(diff_des_2_dates/(24*60*60).." jour(s)")
local difference_jr = diff_des_2_dates/(24*60*60)
fibaro:setGlobal('difference_jr', difference_jr)
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lbtpsecoule.value", diff_des_2_dates /(24*60*60).." jour(s)")

fibaro:debug(ma_date_en_toute_lettre) j'ai 01/01/1970, je pense que mon problème vient de la....

Posté(e)

Bonjour @flamalex

Je pense que le problème est ici:

--Insere la date dans time_last_rain en manuel
fibaro:setGlobal('time_last_rain', "17/06/2020")

MAIS comment faire pour introduire la valeur dans  'time_last_rain' en manuel ?

une idée ?

Posté(e)

os.time() retourne un temps en secondes écoulé depuis le 1er janvier 1970 à minuit.

 

Je te suggère d'essayer :

fibaro:setGlobal('time_last_rain', os.time{year=2020, month=6, day=17, hour=0})

cf.la doc Lua pour mieux comprendre...

×
×
  • Créer...