Homepage

  • Projekte
  • Shop
  • Forum
Erweiterte Suche
  • Schnellzugriff
    • Unbeantwortete Themen
    • Aktive Themen
    • Suche
  • FAQ
  • Anmelden
  • Registrieren
  • Foren-Übersicht
  • Suche

falsches Datum am 31.12 in einem Schaltjahr

Ethernet Mega32 Experimentierboard
Antworten
  • Druckansicht
Erweiterte Suche
1 Beitrag • Seite 1 von 1
manri
Beiträge: 1
Registriert: 01.01.2013, 16:21:20

falsches Datum am 31.12 in einem Schaltjahr

  • Zitieren

Beitrag von manri » 01.01.2013, 23:23:46

Hallo zusammen,

erst einmal ein großes Lob und ein Dankeschön an all die jenigen die, die uns Newbies an ihren Entwicklungen teilhaben lassen.

Gestern ist mir folgendes aufgefallen. Der Webserver hat als Datum folgendes ausgegeben

00.01.13 anstatt 31.12.12. Heute dem 01.01.13 läuft alles wieder wie es soll.

orginal

void ntp_get (unsigned char index)
{
NTP_DEBUG("** NTP DATA GET! **\r\n");

struct NTP_GET_Header *ntp;
ntp = (struct NTP_GET_Header *)&eth_buffer[UDP_DATA_START];

ntp->rx_timestamp = HTONL(ntp->rx_timestamp);
ntp->rx_timestamp += GMT_TIME_CORRECTION; // UTC +1h
time = ntp->rx_timestamp;

uint16_t tage = (unsigned long)(time/86400); // Tage seit 1.1.1900
tage -= 39445; // 108 Jahre abziehen -> Tag 0 ist 31.12.2007

unsigned char yy = 8; // 2008 ist Offset
while (tage > 365)
{
tage -= 365;
if ( yy % 4 == 0)
{
tage--; // Schaltjahr
}
++yy;
}
TM_YY = yy;




Durch folgende Änderung sollte es in vier Jahren auch das richtige Datum anzeigen

unsigned char yy = 8; // 2008 ist Offset
while (((tage > 365) && (yy % 4 != 0)) || ((tage > 366) && (yy % 4 == 0)))
{
tage -= 365;
if ( yy % 4 == 0)
{
tage--; // Schaltjahr
}
++yy;
}
TM_YY = yy;



Ist bestimmt nicht die schönste Lösung, habt ein Nachsehen ich bin noch Neuling.

Gutes Neues

MfG

Manfred
Nach oben

Antworten
  • Druckansicht
1 Beitrag • Seite 1 von 1

Zurück zu „ETH_M32_EX“



  • Foren-Übersicht
  • Alle Zeiten sind UTC+02:00
  • Alle Cookies löschen

Powered by phpBB® Forum Software © phpBB Limited

Deutsche Übersetzung durch phpBB.de

Datenschutz | Nutzungsbedingungen

 

 

sitemap  |    |  datenschutz   |  impressum