Calcolo giorno dell’anno in base a data

Attenzione !I messaggi sul forum potrebbero essere modificati dal nostro staff. La data e l'ora dei messaggi potrebbe non essere quella di invio ma quella di moderazione da parte dello staff. Grazie per l'attenzione.

Home Forum Programmazione IEC 61131 (LogicLab) Calcolo giorno dell’anno in base a data

Questo argomento contiene 0 risposte, ha 1 partecipante, ed √® stato aggiornato da  Sergio Bertana 7 anni, 6 mesi fa.

Stai vedendo 1 articolo (di 1 totali)
  • Autore
    Articoli
  • #35102

    Sergio Bertana
    Amministratore del forum

    Ricevo da un cliente la richiesta di una funzione per il calcolo del giorno progressivo dell’anno in base ad una data. Guardando un po su internet ho trovato una funzione in “C” per il calcolo che tiene conto anche degli anni bisestili, riporto la funzione:

    int DoYCalc(int Day, int Month, int Year)
    {
        int n1=275*Month/9;
        int n2=(Month+9)/12;
        int n3=((Year-4*(Year/4)+2)/3)+1;
        return(n1-(n2*n3)+Day-30);
    }

    Ho realizzato la funzione UINT DayOfYear(USINT Day, USINT Month, UINT Year) in linguaggio ST. Allego per il download un programma sorgente con la funzione realizzata ed un programma ST di test che esegue l’invio su porta seriale ad ogni secondo del valore di giorno dell’anno calcolato dalla funzione.

    E’ possibile in debug modificare i valori di giorno, mese ed anno del programma di test per verificare il funzionamento della funzione (Download programma).

Stai vedendo 1 articolo (di 1 totali)

Devi essere loggato per rispondere a questa discussione.