[Résolu] Aditionner des dates heures temps

Bonjour à tous,

L’IDE me renvoi l’erreur suivante:

datalogger15sv2.ino: In function ‘void loop()’:
datalogger15sv2:152: error: lvalue required as left operand of assignment

La ligne fautive est la suivante:

    //adjust dst time
    now.hour() += adjustDstEurope(now);

Je souhaite ajuster le RTC en ajoutant soit 1h si heure d’hiver, soit 2h si heure d’été.

La fonction adjustDstEurope(now) renvoie soit 7200 soit 3600.
Et apparement ça ne fonctionne pas car now.hour() ne doit pas etre du meme type que l’integer?

Quelqu’un aurait une piste?

Hello,

En effet, hour() est une fonction, qui retourne une valeur, mais qui ne permet pas de modifier celle-ci.

Quelle est la classe de now ?

Je ne comprends pas la question donc je te mets ce que j'ai déclaré:

DateTime now = RTC.now(); //get the current date-time

Pourtant quand je fais :

now = adjustDstEurope(now);

ça me renvoie bien 1h car on est en hiver

mais je ne peux pas faire now += adjustDstEurope(now);

?

En attendant d'avoir une réponse j'ai utilisé:

DateTime nowDST (now.year(), now.month(), now.date(), (now.hour()+adjustDstEurope(now)), now.minute(), now.second(), now.dayOfWeek());

Bonjour,

//adjust dst time
now.hour() += adjustDstEurope(now);

tu ne peux rien affecter à now.hour(), c'est une fonction en lecture seule qui retourne l'heure.

Pour faire ce que tu demande il faut stocker le résultat dans une variable.

unsigned char heure;
heure = now.hour();
heure += adjustDstEurope(now);

Ok, merci pour l'aide.

Effectivement je n'ai pas trop réfléchi sur le coup mais cela parait logique maintenant que tu le dis :grin:

Je mets en résolu

:wink: