- Questo topic ha 0 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 12 anni, 6 mesi fa da .
Stai visualizzando 1 post (di 1 totali)
Stai visualizzando 1 post (di 1 totali)
- Devi essere connesso per rispondere a questo topic.
Home › Forum › Programmazione IEC 61131 (LogicLab) › Calcolo giorno dell’anno in base a data
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).