Problème de double if

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #186142 quote
    imencity
    Participant
    Senior

    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.

    #186144 quote
    JC_Bywan
    Moderator
    Master

    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

    #186146 quote
    imencity
    Participant
    Senior

    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 ?

    okay.jpg okay.jpg
    #186148 quote
    JC_Bywan
    Moderator
    Master

    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
    #186152 quote
    imencity
    Participant
    Senior

    Merci je regarderais ça ce soir.

    bizarre que ça marche dans un cas et pas un autre.

    #186259 quote
    imencity
    Participant
    Senior

    Oh oh oh… ça marche comme je veux grâce à opentime 😉

    Merci !

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

Problème de double if


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
imencity @imencity Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by imencity
4 years, 1 month ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 01/21/2022
Status: Active
Attachments: 1 files
Logo Logo
Loading...