Bonjour,
J’ai un problème de double if je ne comprends pas pourquoi
start = 080000
end = 235900
once okay1 = 0
once okay2 = 0
if OpenDayOfWeek = 1 then
okay1 = 1
if time>=start and time[1]<start then
okay2 = 2
// truc
endif
endif
if OpenDayOfWeek = 2 then
if time>=start and time[1]<start then
// truc
endif
if time>=end and time[1]<end then
// truc
endif
endif
if OpenDayOfWeek = 5 then
okay1 = 0
okay2 = 0
endif
return okay1, okay2
normalement le lundi je devrais avoir okay1 à 1 à partir de minuit et okay2 à 2 à partir de 08h mais okay2 est toujours à 0…
Savez-vous ce qui cloche ? Merci.
Ton code fonctionne chez moi, problème non reproductible à partir des données fournies.
Deux hypothèses au cas où:
1) Partout où il y a “truc” cela remplace du code qui aurait éventuellement influencé la valeur de okay2 directement ou indirectement
2) Le problème est sur une UT suffisamment petite, avec un choix d’historique suffisamment court (nombre d’unités), pour qu’aucun point à lundi 8h n’en fasse partie entre le début de l’historique et ce vendredi (exemple 1 minute et seulement 1000unités ne remonte qu’à jeudi matin) et donc jamais okay2 n’a eu l’opportunité de passer à 2, ce qui ne remettrait pas en cause le code mais le choix utilisateur d’UT et/ou d’historique
Merci de ta réponse,
tu as okay2 = 2 ???
J’ai oublié de dire que je suis en 100 ticks.
De mon côté okay1 passe bien à 1 jusqu’au jeudi soir, puis à 0. Et il repasse à 1 le lundi à minuit.
Mais okay2 reste inexorablement à 0 tous le temps…
côté historique je suis passé à 15k unités au cas où.
Et le “if time>=start and time[1]<start then” fonctionne bien dans ce cadre-là:
https://www.prorealcode.com/topic/drawrectangle-avec-fin-24h-plus-tard-en-100-ticks/#post-183433
Dès que c’est inclus dans OpenDayOfWeek ça marche pas chez moi.
tu me confirmes que tu as okay à 2 après 08h ?
J’ai oublié de dire que je suis en 100 ticks
si c’est du 100 ticks cela change tout en effet, le double if n’est pas en cause, en (x) ticks mieux vaut travailler avec un horaire d’ouverture de bougie plutôt que de fermeture, donc “opentime” plutôt que “time”, tu peux remplacer la ligne 8 par:
if opentime>=start and opentime[1]<start then
Merci je regarderais ça ce soir.
bizarre que ça marche dans un cas et pas un autre.
Oh oh oh… ça marche comme je veux grâce à opentime 😉
Merci !