Retour Fonction incorrect

Bonjour à tous,

Nouveau sur ce forum, j'ai besoin de votre pour résoudre une erreur sur un retour de fonction.
Je cherche à calculer le décalage horaire en fonction de la date.
J'ai commencé a écrire une fonction pour faire des essais mais la fonction me retourne toujours la valeur 8.

Je ne comprends pas comment cela est possible sachant que je devrais avoir que les valeurs 1, 2 ou 3.

Merci par avance pour votre aide.

HourOffset=UTCoffsetSetting(CurrentMonth,MonthDay,DayOfTheWeek,CurrentHour,CurrentMinute, CurrentSecond);

Serial.print("Offset: ");
Serial.println(HourOffset);

 int UTCoffsetSetting (int Month, int DayNumber, int DayOfWeek, int Heure, int Minute, int Second) {
     int Offset;
    if (SummerTime=false){
        if((Month = 3 && ((31 - DayOfMonth) < 7)) || (Month = 10 && ((31 - DayOfMonth) > 7))||(Month > 3 && Month < 10)){
        //if ((DayNumber == 7) && (31 - DayOfMonth < 7)) {
            SummerTime = true;
           // return 2;
          Offset = 2;
          return Offset;
       // }
    }
    }
    else if (SummerTime = true) {
        if ((Month == 10 && Heure == 3 && Minute == 0)) {
            if ((DayNumber == 7) && (31 - DayOfMonth < 7)) {
                SummerTime = false;
                Offset = 1;
                return Offset;
               // return 1;
            }
        }
    }
    else {
        Offset = 3;
        return Offset;
    }
}

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

hello, tu es sur que tu affiche bien le meme offset?
tu n'en as pas déclaré un autre qui aurait une portée globale ?
teste en affichant l'offset avant de sortir de la fonction.

Bonjour over_craft47
Si, tu remplaces tout tes return Offset; par return 123;, as tu toujours 8;

Cordialement
jpbbricole

Le test d'égalité, c'est ==
Vérifie bien ton code

Bonjour @over_craft47
@lesept a raison

oui j'ai essayé et j'ai toujours 8

Exact. voila ce qu'il se passe quand on veut aller trop vite.
Ca marche beaucoup mieux comme ca. par contre je ne comprends pas pourquoi j'avais la valeur 8.
Merci pour votre aide philippe86220 et lesept

Comme d'hab !!!

Cette condition ne doit pas compiler, il y a plus de ( que de ) ...

As-tu testé ce que dit dfgh ?

Si je compte bien, il y a le même nombre de ( que de ).
Ca compile correctement et ca fonctionne beaucoup mieux en faisant le test d'égalité avec ==.
merci

Au temps pour moi

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.