una formula lunga un anno...

Che poi non è vero, ma quasi
mi serve per altre cose sapere che giorno della settimana sia una data a caso
all'ora, dopo una veloce ricerca in internet, che mi ha mostrato un bel po' di confusione (altrui, intendo), e dopo aver guardato un paio di librerie, che richiedono tempi in formati "scomodi", mi sono scritto questa cosetta qui:

byte giornosettimana(byte giorno, byte mese, int anno)
{
    // restituisce il giorno della settimana, 0 vale domenica
    byte lunmese[] = {0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5};
    return (anno - 1 + (anno - 1) / 4 - (anno - 1) / 100 + (anno - 1) / 400 + (giorno + lunmese[mese - 1]) + (mese > 2) * ((!(anno % 4) && (anno % 100)) || !(anno % 400))) % 7;
}

è effettivamente un po' lunghetta come formula, ma non copre solo un anno :slight_smile:
voi ci vedete bacherozzi? io no, ma si sa che: "ogni scarrafone è bello a mamma sua...."

La libreria Time ti sta antipatica per qualche ragione? :wink:

Direi che una cosa di questo tipo dovrebbe andare:

#include <Time.h>
...
   tmElements_t tDate;
   time_t t;
   // 26/06/2018
   tDate.Hour = 0;
   tDate.Minute = 0;
   tDate.Second = 0;
   tDate.Year = 2018 - 1970;  // E' l'offset dal 1970!
   tDate.Month = 6;
   tDate.Day = 26;
   
   t = makeTime(tDate);
   Serial.println(weekday(t));

Antipatica no
Però la trovo scomoda. Gusti personali

Le opinioni sono come le palle, ognuno ha le sue :slight_smile: però comunque reinventare l'acqua calda mi pare uno spreco di tempo e neuroni.. :wink:

Si usano le librerie principalmente per due motivi! Primo motivo risparmiare tempo "a volte il tempo risparmiato si misura in molti anni uomo". Secondo motivo, a volte non si sarebbe in grado di scrivere codice che risolva uno specifico problema, allora si usa il codice di qualcuno che è in grado di farlo :slight_smile:

Questa è la mia opinione "le mie palle" :slight_smile: Non è del tutto inutile rifare qualcosa che già esiste. Si prova a se stessi che si è in grado di farlo. Ci si ricava soddisfazione personale. Poi è una pratica molto in uso,ad ogni persona che si accinge ad imparare a programmare, gli si ripropongono gli stessi esercizi.

Un po come un modellista che si costruisce un motore da solo, invece di acquistarne uno già pronto :slight_smile:

E' una funzione interessante, la stò testando... Poi andrò a vedere in dettaglio come funziona la progressione delle date.