www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UTC zeit auf lokal Zeit


Autor: ichich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte aus den NMEA Datensatz RMC die Zeit und das Datum verwenden.

Wie kann ich nun von UTC auf Localzeit kommen.
Geht das irgend wie über die GPS Position?

Danke für Tipps

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich. Du könntest über die GPS-Position Rückschlüsse über die 
Zeitzone, in der du dich befindest, machen lassen. Das wird aber 
vermutlich ziemlich aufwendig.

Ich würde das aber einfacher handhaben: entweder konfigurierbar im Code 
oder über ein Benutzerinterface. Für eine Umrechnung nach CET einfach +1 
Stunde; bei Sommerzeit halt +2 Stunden.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar - du musst nur die aktuelle Position mit den Verläufen der 
Zeitzonengrenzen vergleichen, schon weisst du, in welcher Zeitzone du 
dich befindest. Wenn das "full-featured" werden soll, also an jeder 
Position der Welt fehlerlos funktionieren soll, musst du dir halt die 
genauen Koordinaten der Zeitzonengrenzen besorgen - dazu alle regionalen 
Sommerzeitdaten. usw.

Da das aber aber (ausserhalb der internationalen Luftfahrt) kein Mensch 
braucht, reicht normalerweise die manuelle Eingabe der Zeitzone.

Oliver

Autor: ichich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke für die Antworten.
Ich werds dann doch über ein Benutzerinterface machen.

Was ist denn genau Umrechnung nach CET.

Zeit umrechnen ist ja kein Problem, da die Überläufe immer gleich sind.
Wie ist denn das genau mit dem Datum 30,31, Schaltjahr.
mfg

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was ist denn genau Umrechnung nach CET.

???

CET
Central European Time
deutsch: MEZ

= UTC + 1 std.

Das alles, und noch viel mehr, steht in wikipedia unter...

Zeitzone

Oliver

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ichich wrote:

> Was ist denn genau Umrechnung nach CET.

CET bedeutet Central European Time; zu deutsch MEZ = Mitteleuropäische 
Zeit.
Hatte ich auch schon schon beschrieben, wie das geht. Einfach +1 Stunde 
, Im Sommer +2 Stunden.

> Wie ist denn das genau mit dem Datum 30,31, Schaltjahr.

Am Datum ändert sich nichts....Du musst den Datumswechsel nur halt für 
eine Stunde (bzw zwei Stunden) im vorraus berechnen.

Autor: ichich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry,
ich steh ich irgendwie auf der Leitung.

Wenn ich den Datumswechsel am 30 Monatstag im voraus berechne,
muss ich wissen ob es einen 31 Monatstag gibt.
Wie löst man dies?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
?????
Irgendwie stehe ich auch auf der Leitung. Wenn doch dein NMEA-Datensatz 
Datum und Zeit enthält, was willst du noch berechnen?

Aber ansonsten versuchs mal mit:

switch(Monat)
{
   case Jan:
        Mar:
        Mai:
        Jul:
        Aug:
        Oct:
        Dez: return 31; break;

   case Feb: return SchaltjahrTage(Jahr); break

   default: return 30; break;
}

Autor: ichich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
?????
Irgendwie stehe ich auch auf der Leitung. Wenn doch dein NMEA-Datensatz
Datum und Zeit enthält, was willst du noch berechnen?

Frage: NMEA Daten zB. UTC  23 30 50.000 Datum 28 02 08

Jetzt + 1h =  UTC 00 30 50.000 Datum 29 02 08 oder 01 03 08?

Sonst ist innerhalb des Zeitvesatzes das Datum einfach falsch oder?

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dein Jahr Modulo 4 Null ergibt, ist es ein Schaltjahr.

MW

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ichich wrote:

> Frage: NMEA Daten zB. UTC  23 30 50.000 Datum 28 02 08
>
> Jetzt + 1h =  UTC 00 30 50.000 Datum 29 02 08 oder 01 03 08?

Fragst du gerade ernsthaft, ob 2008 ein Schaltjahr ist?!

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Wilhelm wrote:

> Wenn dein Jahr Modulo 4 Null ergibt, ist es ein Schaltjahr.

Nicht ganz korrekt. Alle 200Jahre gibts ein extra Schaltjahr :)

ed: alle 400Jahre...sorry

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab eben noch mal nachgesehen:
Alle Jahre, die durch 4 ohne Rest teilbar sind, sind Schaltjahre.
Alle Jahre, die durch 100 ohne Rest teilbar sind, sind keine 
Schaltjahre.
Alle Jahre, die durch 400 ohne Rest teilbar sind, sind wiederum 
Schaltjahre.


MW

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber:

da das Jahr nur zweistellig ausgegeben wird sind diese Korrekturen nicht 
anwendbar.

MW

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>da das Jahr nur zweistellig ausgegeben wird sind diese Korrekturen nicht
>anwendbar.

ROTFL

> Jetzt + 1h =  UTC 00 30 50.000 Datum 29 02 08 oder 01 03 08?
>Sonst ist innerhalb des Zeitvesatzes das Datum einfach falsch oder?

Jung, kauf dir doch einfach 'nen Funkwecker. Gibts für 5,99 bei Aldi. Da 
steht das richtige Datum immer drauf. Alles andere ist anscheinend um 
Größenordnungen zu kompliziert für dich.

Oliver

Autor: ichich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an euch,
jetzt sind alle meine Fragen geklärt.

Besonders nützlich war der letzte Kommentar von Oliver.

Oliver Du bist der Beste.

Autor: Arno H. (arno_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Michael Wilhelm (Gast)
1. fällts auf, wenn die UTC umspringt und die Ortszeit berechnet oder 
synchronisiert werden muss.
2. ist es seinen Erben durchaus zuzumuten im Jahr 2100 die Uhr manuell 
umzustellen. Es gibt Armbanduhren (IWC irgendwas) mit Spezialschlüssel 
für diese Sonderfälle.

Arno

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.