Hallo Jurs,
"Oder hast Du ein Problem, nachdem Du für die Berechnung für Monat, Tag, UTC+1, Längengrad und Breitengrad durchgeführt und Auf-/Untergangszeiten bekommen hast, jeweils eine Stunde draufzuschlagen, falls es sich um einen Tag mit Sommerzeit handelt? "
genau das ist die Nuss die ich knacken muss ..
Hier ist ein auszug aus meinem Code:
aus dem Header
#include <Sunrise.h> // Sonnenauf und Untergang berechnen
Sunrise mySunrise(50.9122, 6.8159, +1);
aus der setup:
mySunrise.Actual(); //Actual, Civil, Nautical, Astronomical
delay(10);
//***********************************************************************************************
// Display Funktion
void digitalClockDisplay() { // Ausgabe Datum und Zeit
tmElements_t tm; // tmElements Funktion wird gebraucht
display.clearDisplay(); // Display refresh
byte h, m;
int t;
//***********************************************************************************************
// Astro Sonnenaufgang und Sonnenuntergang
// ************ Aufgang
t = mySunrise.Rise(now.month(), now.day()); // (month,day) - january=1
h = mySunrise.Hour(); // h = stunden
m = mySunrise.Minute(); // m = minuten
display.setCursor(0, 0); // Position (x,y)
display.setTextSize(1); // Textgröße 1
display.setTextColor(BLACK); // Display Farbe schwarz
display.print("A"); // ein A für Aufgang ausgeben
display.setCursor(9, 0); // Position (x,y)
if (h < 10) // Wenn h (Stunden) kleiner als 10
{
display.print(0, DEC); // eine 0 Dezimal vorranstellen
}
display.print(h, DEC); // Dann die Stunden Dezimal ausgeben
display.print(":"); // Einen Doppelpunkt aufs Display
if (m < 10) // Wenn die Minuten kleiner 10 sind
{
display.print(0); // eine 0 Dezimal vorranstellen
}
display.print(m, DEC); // Dann die Minuten Dezimal ausgeben
//Serial.print(h, m);
//Serial.print(" ");
// ************ Untergang
t = mySunrise.Set(now.month(), now.day()); // (month,day) - january=1
h = mySunrise.Hour(); // h = stunden
m = mySunrise.Minute(); // m = minuten
display.setCursor(45, 0); // Position (x,y)
display.setTextSize(1); // Textgröße 1
display.setTextColor(BLACK); // Display Farbe schwarz
display.print("U"); // ein U für Untergang ausgeben
display.setCursor(54, 0); // Position (x,y)
if (h < 10) // Wenn h (Stunden) kleiner als 10
{
display.print(0, DEC); // eine 0 Dezimal vorranstellen
}
display.print(h, DEC); // Dann die Stunden Dezimal ausgeben
display.print(":"); // Einen Doppelpunkt aufs Display
if (m < 10) // Wenn die Minuten kleiner 10 sind
{
display.print(0); // eine 0 Dezimal vorranstellen
}
display.print(m, DEC); // Dann die Minuten Dezimal ausgeben
}
Ein Nokia 5110 Display habe ich verwendet.
ich hoffe das hilft weiter ...
Stefan