Datum zur Sommerzeit-/Winterzeit - Änderung auslesen



  • Hallo liebe Gemeinde.

    Im Unterforum C++ (auch C++0x und C++11) habe ich folgenden Quellcode gepostet:

    #include <iostream>
    #include <ctime>
    #include <cassert>
    #include <string>
    #include <Windows.h>
    #include <conio.h>
    using namespace std;
    
    static const char *wochentag_name(int index)
    {
    	assert(0<=index&&index<7);
    	static const char* namen[] = {
    					"Sonntag",
    					"Montag",
    					"Dienstag",
    					"Mittwoch",
    					"Donnerstag",
    					"Freitag", 
    					"Samstag"
    				};
    				return namen[index];
    };
    
    int main()
    {
    	std::string Frage;
    	time_t Uhrzeit;
    	tm *pUhrzeit;
    	Uhrzeit = time(0);
    	pUhrzeit = localtime (&Uhrzeit);
    
    	do
    	{
    		cout << "Was wollen Sie wissen?\n";
    		getline(cin, Frage);
    		cout << "\n";
    
    		if(Frage=="Wieviel Uhr ist es?")
    		{
    			cout << "\n";
    			cout << "\t" << pUhrzeit -> tm_hour << ':' << pUhrzeit -> tm_min   << ':' << pUhrzeit -> tm_sec << "\n"; //Uhrzeit
    			cout << "\n";
    		}
    
    		if(Frage=="Welches Datum ist heute?")
    		{
    			cout << "\n";
    			cout << "\t" << pUhrzeit -> tm_mday << '.' << pUhrzeit -> tm_mon+1 << '.' << pUhrzeit -> tm_year + 1900 << "\n"; //Datum
    			cout << "\n";
    		}
    
    		if(Frage=="Welcher Tag ist heute?")
    		{
    			cout << "\n";
    			cout << "\t" << wochentag_name(pUhrzeit->tm_wday) << "\n"; //Wochentag
    			cout << "\n";
    		}
    
    		if(Frage=="Welche Jahreszeit ist jetzt?")
    		{
    			cout << "\n";
    			cout << "\t" << ((pUhrzeit ->tm_isdst) ? "Sommerzeit" : "Winterzeit") << "\n"; //Jahreszeit
    			cout << "\n";
    		}
    
    		if(Frage=="Wann beginnt die Sommerzeit?")
    		{
    			int Jahr;
    			cout << "\n";
    			cout << "Welches Jahr wollen Sie wissen?\n";
    			cin  >> Jahr;
    			cout << "\Die Sommerzeit im Jahr " << Jahr << " beginnt am " << "\n";
    			cout << "\n";
    		}
    
    		if(Frage=="Wann beginnt die Winterzeit?")
    		{
    			int Jahr;
    			cout << "\n";
    			cout << "Welches Jahr wollen Sie wissen?\n";
    			cin  >> Jahr;
    			cout << "\tDie Winterzeit im Jahr " << Jahr << " beginnt am "  <<  "\n";
    			cout << "\n";
    		}
    
    		if(Frage=="cls")
    		{
    			system ("cls");
    		}
    		if(Frage=="Exit")
    		{
    			cout << "\n";
    			cout << "\tExit durch Abbruch!\n";
    			cout << "\n";
    		}
    	}while(Frage!="Exit");
    
    	return 0;
    }
    

    Hier nochmal die Verlinkung zum Anschauen: http://www.c-plusplus.net/forum/311662

    Nun stehe ich vor folgendem Problem:
    Ich möchte bei der Frage "Wann beginnt die Sommerzeit?" bzw. "Wann beginnt die Winterzeit?" das Datum für das jeweilige Jahr per Konsole auslesen.

    Wenn ich zum Beispiel die Frage Stelle "Wann beginnt die Sommerzeit?" und auf die Frage "Welches Jahr wollen Sie wissen?" "2015" antworte, würde ich gerne ausgeben lassen, wann im Jahr 2014 die Sommerzeit beginnt.

    Wie kann ich denn auf die im PC verfügbare Umstellung zurückgreifen? Welche Header Dateien muss ich außer

    #include<windows.h>
    

    miteinbeziehen? Wie funktioniert das??

    Danke für die Antworten im Voraus.

    Gruß Max



  • Gibt es leider erst ab Vista SP1...
    GetTimeZoneInformationForYear
    http://msdn.microsoft.com/en-us/library/windows/desktop/bb540851



  • Ersteinmal danke für die Antwort.

    Ich nutze Windows 7 Professional...

    Sonst muss ich nichts eingeben?? Wird dann automatisch das Datum angegeben?

    Ich meine, kann ich es wie folgt schreiben:

    if(Frage=="Wann beginnt die Winterzeit?")
    		{
    			int Jahr;
    			cout << "\n";
    			cout << "Welches Jahr wollen Sie wissen?\n";
    			cin  >> Jahr;
    			cout << "\tDie Winterzeit im Jahr " << Jahr << " beginnt am " << GetTimeZoneInformationForYear <<  "\n";
    			cout << "\n";
    		}
    

    Edit:

    Wenn ich das so schreibe, dann wird mir z. B. "Die Sommerzeit im Jahr 2012 beginnt am 00E11438" ausgegeben...

    Was habe ich falsch gemacht?



  • silent_max schrieb:

    Wenn ich das so schreibe, dann wird mir z. B. "Die Sommerzeit im Jahr 2012 beginnt am 00E11438" ausgegeben...

    Was habe ich falsch gemacht?

    Du hast die Seite, auf die Dich der Link von Jochen führt, nicht aufmerksam studiert.



  • Der Jochen war so nett (im Gegesatz zu mir) dir einen Link zur Referenz der Funktion zu geben.
    Lies die Seite durch verfolge auch die Links auf der Seite.

    Woher soll denn die Funktion wissen
    a) welches Jahr du willst
    b) welche Zeitzone du willst
    c) welche Information du daraus haben willst.

    Die Funktion braucht Parameter. Welche sagt die der Link von Jochen.

    Lerne lernen. Sei selbstständig. 🙄 😮



  • Du musst dir eine eigene Funktion schreiben, die GetTimeZoneInformationForYear mit den richtigen Paramtern aufruft und dir das Ergebnis zurück gibt.

    Denn so einfach wie du das machen willst, ist es nicht.



  • Ist das nur ein Beispiel Code auf der Seite, die Jochen verlinkt hat?

    Wenn ich jetzt

    bool winapi GetTimeZoneInformationForYear(
    	_In_    USHORT wYear,
    	_In_opt PDYNAMIC_TIME_ZONE_INFORATION pdtzi,
    	_Out_   LPTIME_ZONE_INFORMATION ptzi
    	);
    

    schreibe, dann sindt GetTimeZoneInformationForYear, USHORT, _In_opt und pdtzi rot unterringelt.

    Muss ich denn bei der Funktion, die auf Jochens Verlinkung gezeigt wird, die Parameter selbst wählen oder wie ist das??

    Gruß

    Edit:

    Ich muss schon

    #include <windows.h>
    

    schreiben?

    Oder muss ich

    #include <cwindows>
    

    schreiben??



  • Das ist die Funktionsdeklaration im Kasten

    bool winapi GetTimeZoneInformationForYear(
        _In_    USHORT wYear,
        _In_opt PDYNAMIC_TIME_ZONE_INFORATION pdtzi,
        _Out_   LPTIME_ZONE_INFORMATION ptzi
        );
    

    Die Funktion heißt GetTimeZoneInformationForYear und gibt einen bool -Wert zurück.

    Der 1. Parameter ist vom Typ USHORT (in: muss sein)
    Der 2. Parameter ist vom Typ PDYNAMIC_TIME_ZONE_INFORATIO (in_opt: kann hier auch NULL sein)
    Der 3. Parameter ist vom Typ LPTIME_ZONE_INFORMATION (out: hier bekommst du die Werte raus)

    Aber das steht doch alles unter der Überschrift Paramters unter dem Kasten.
    Und da sind auch Links (in blau) zu den nichttrivialen Typen.
    Und wenn du die verfolgst kannst du auch sehen was da zurück gegeben wird.

    Und unter Requirements steht ein Eintrag namens Header. Und da steht Winbase.h (include Windows.h)

    Solche Funktionsdeklarationen hast du doch aber selber schon erstellt.



  • Also ich habe die Header <Windows.h> und <Winbase.h> includiert, dennoch wird bei mir
    -> GetTimeZoneInformationForYear mit der Meldung "Error: Der explizite Typ fehlt ("int" wird angenommen)
    -> _In_opt mit der Meldung "Der Bezeichner ""_In_opt"" ist nicht definiert
    -> pdtzi mit der Meldung "Error: Es wurde eine ")" erwartet"
    -> GetTimeZoneInformationForYear mit der Meldung "Error: Mehrere Instanzen von Überladene Funktion "GetTimeZoneInformationForYear" stimmen mit dem erforderlichen Typ überein

    rot unterringelt.

    DirkB schrieb:

    Das ist die Funktionsdeklaration im Kasten

    bool winapi GetTimeZoneInformationForYear(
        _In_    USHORT wYear,
        _In_opt PDYNAMIC_TIME_ZONE_INFORATION pdtzi,
        _Out_   LPTIME_ZONE_INFORMATION ptzi
        );
    

    Die Funktion heißt GetTimeZoneInformationForYear und gibt einen bool -Wert zurück.

    Der 1. Parameter ist vom Typ USHORT (in: muss sein)
    Der 2. Parameter ist vom Typ PDYNAMIC_TIME_ZONE_INFORATIO (in_opt: kann hier auch NULL sein)
    Der 3. Parameter ist vom Typ LPTIME_ZONE_INFORMATION (out: hier bekommst du die Werte raus)

    Wenn das die Parameter sind, wie muss ich dann die Funktion an sich füttern? Ich muss ja im Funktionsblock mindestens bool zurückgeben... Oder langt es, wenn ich "nur" den Funktionsprototypen schreibe, damit GetTimeZoneInformationForYear ein Datum ausgibt?? Komischerweise, wenn ich den Funktionsprototypen weg lasse dann wird bei

    if(Frage=="Wann beginnt die Sommerzeit?")
    {
      int Jahr;
      cout << "\n";
      cout << "Welches Jahr wollen Sie wissen?\n";
      cin  >> Jahr;
      cout << "\tDie Sommerzeit im Jahr " << Jahr << " beginnt am " << GetTimeZoneInformationForYear << "\n"
      cout << "\n";
    }
    

    das "GetTimeZoneInformationForYear" nicht rot unterringelt.

    Aber das steht doch alles unter der Überschrift Paramters unter dem Kasten.
    Und da sind auch Links (in blau) zu den nichttrivialen Typen.
    Und wenn du die verfolgst kannst du auch sehen was da zurück gegeben wird.

    Und unter Requirements steht ein Eintrag namens Header. Und da steht Winbase.h (include Windows.h)

    Wie oben schon geschrieben, die oben genannten Parameter sind bei mir rot unterringelt, obwohl ich Winbase.h und Windows.h includiert habe.... Welche Header muss ich denn noch mit einbeziehen??

    [qoute]Solche Funktionsdeklarationen hast du doch aber selber schon erstellt.

    Funktionen an sich habe ich ja schon oft genug und ausgiebig geübt, aber eine Funktion mit drei Parametern habe ich noch nicht gemacht. Ich habe meistens "nur" Funktionen mit zwei Parametern geschrieben...

    Irgendwie habe ich das Gefühl, dass mir die Zeit davon rennt, weil kommenden Montag muss ich das Programm vor der ganzen Klasse vorführen und da das benotet wird, sollte das Programm auch laufen...

    Ich bitte an der Stelle inständig um eure Hilfe, da ich das überhaupt nicht raffe, wie das funktioniert...

    Gruß

    Max



  • Hallo,

    silent_max schrieb:

    Also ich habe die Header <Windows.h> und <Winbase.h> includiert

    Windows.h reicht, denn in der Doku steht:

    Winbase.h (include Windows.h)

    silent_max schrieb:

    Wenn das die Parameter sind, wie muss ich dann die Funktion an sich füttern? Ich muss ja im Funktionsblock mindestens bool zurückgeben... Oder langt es, wenn ich "nur" den Funktionsprototypen schreibe, damit GetTimeZoneInformationForYear ein Datum ausgibt?? Komischerweise, wenn ich den Funktionsprototypen weg lasse dann wird bei

    if(Frage=="Wann beginnt die Sommerzeit?")
    {
      int Jahr;
      cout << "\n";
      cout << "Welches Jahr wollen Sie wissen?\n";
      cin  >> Jahr;
      cout << "\tDie Sommerzeit im Jahr " << Jahr << " beginnt am " << GetTimeZoneInformationForYear << "\n"
      cout << "\n";
    }
    

    das "GetTimeZoneInformationForYear" nicht rot unterringelt.

    Das ist kein Funktionsaufruf, die Funktion wird wie jede andere auch aufgerufen, mit den Argumenten in Klammern (die ich unten nicht schreibe, denn die kommen von dir)

    GetTimeZoneInformationForYear(...)
    

    In der Doku steht auch, mit welchen Argumenten die Funktion das "Ergebnis" berechnet, das sind die, die ein _In_ davor stehen haben, ein _Out_ sagt dir, dass die Funktion über dieses Argument etwas zurück gibt (zusätzlich zum bool). Also: du musst das Jahr übergeben, du kannst einen PDYNAMIC_TIME_ZONE_INFORMATION (übersetzt: einen Zeiger auf eine DYNAMIC_TIME_ZONE_INFORMATION ) übergeben (du kannst auch NULL angeben, das steht alles in der Doku), und dann musst du nur einen Zeiger auf eine von dir definierte TIME_ZONE_INFORMATION als drittes Argument übergeben, nach dem Aufruf hat die Funktion dir diese TIME_ZONE_INFORMATION mit Werten "gefüllt" (vor dem Funktionsaufruf hattest du eine "leere" TIME_ZONE_INFORMATION , also mit nicht sinnvollen Werten belegt).

    MfG,

    Probe-Nutzer



  • silent_max schrieb:

    Funktionen an sich habe ich ja schon oft genug und ausgiebig geübt, aber eine Funktion mit drei Parametern habe ich noch nicht gemacht. Ich habe meistens "nur" Funktionen mit zwei Parametern geschrieben...

    Du sollst keine Funktion schreiben sondern anwenden.

    silent_max schrieb:

    Irgendwie habe ich das Gefühl, dass mir die Zeit davon rennt, weil kommenden Montag muss ich das Programm vor der ganzen Klasse vorführen und da das benotet wird, sollte das Programm auch laufen...

    Ich bitte an der Stelle inständig um eure Hilfe, da ich das überhaupt nicht raffe, wie das funktioniert...

    Das wirst du nicht schaffen.
    Und wenn du es nicht raffst, hast du keine Punkte verdient.
    Erklärt wurde es oft genug.

    Besinne dich darauf was das Programm machen soll.
    Und dann mache nur das.



  • silent_max schrieb:

    [...]

    Ich bitte an der Stelle inständig um eure Hilfe, da ich das überhaupt nicht raffe, wie das funktioniert...

    Dann solltest Du erst mal das programmieren in C++ grundsätzlich lernen, und zwar ganz von Anfang an, und nicht gleich mit OS-spezifischen Dingen loszulegen versuchen.
    Das wird nämlich nix, solange Du nicht einmal die wichtigsten Grundlagen Deiner Programmiersprache kennst.



  • DirkB schrieb:

    Du sollst keine Funktion schreiben sondern anwenden.

    Darum geht es mir ja die ganze Zeit ... wie wende ich die Funktion für mich an??

    Langsam ... eines nach dem anderen...

    @Probe-Nutzer... ich versuche es einmal in meinen eigenen Worten zu formulieren, auch Deine Erklärungen.

    Also

    #include <Windows.h>
    

    langt aus, hast Du gesagt.

    Auf Jochens Verlinkung heißt es wie folgt.

    wYear [in]

    The year for which the time zone settings are to be retrieved. The wYear parameter must be a local time value.

    Also ist das Jahr zu lesen, wobei der Parameter einen lokalen Zeitwert haben muss.Der einzigste Befehl, den ich dafür kenne, ist "Get System Time".

    pdtzi [in, optional]

    A pointer to a DYNAMIC_TIME_ZONE_INFORMATION structure that specifies the time zone. If this parameter is NULL, the current time zone is used.

    Ich muss einen Pointer auf DYNAMIC_TIME_ZONE_INFORMATION, die die Zeitzone spezifiert, erzugen. Wenn dieser NULL ist, dann wird die aktuelle Zeit gebraucht.
    [quote]
    ptzi [out]

    A pointer to a TIME_ZONE_INFORMATION structure that receives the time zone settings.
    [/qoute]
    Ein weiterer Pointer auf TIME_ZONE_INFORMATION empfängt die Zeitzonen Einstellungen.

    In der Doku steht auch, mit welchen Argumenten die Funktion das "Ergebnis" berechnet, das sind die, die ein _In_ davor stehen haben, ein _Out_ sagt dir, dass die Funktion über dieses Argument etwas zurück gibt (zusätzlich zum bool). Also: du musst das Jahr übergeben, du kannst einen PDYNAMIC_TIME_ZONE_INFORMATION (übersetzt: einen Zeiger auf eine DYNAMIC_TIME_ZONE_INFORMATION ) übergeben (du kannst auch NULL angeben, das steht alles in der Doku), und dann musst du nur einen Zeiger auf eine von dir definierte TIME_ZONE_INFORMATION als drittes Argument übergeben, nach dem Aufruf hat die Funktion dir diese TIME_ZONE_INFORMATION mit Werten "gefüllt" (vor dem Funktionsaufruf hattest du eine "leere" TIME_ZONE_INFORMATION , also mit nicht sinnvollen Werten belegt).

    Also so wie ich Dich Probe-Nutzer jetzt verstanden habe, muss ich im Funktionsblock mindestens

    *pDYNAMIC_TIME_ZONE_INFORMATION=&DYNAMIC_TIME_ZONE_INFORMATION;// Pointer auf DYNAMIC_TIME_ZONE_INFORMATION,   
    return wYear;
    

    und dann musst du nur einen Zeiger auf eine von dir definierte TIME_ZONE_INFORMATION als drittes Argument übergeben, nach dem Aufruf hat die Funktion dir diese TIME_ZONE_INFORMATION mit Werten "gefüllt"

    Und darum geht es mir, wo es bei mir bzgl. meinem Verständnis happert. Muss ich die Jahre alle von selber eingeben oder kann ich auf einen von Betriebssystemeigenem Wert zurückgreifen? Weil, egal ob Netbook, Laptop oder normaler PC, die Zeitumstellung geschieht ja automatisch... und wie kann ich auf diese automatische Umstellung zurückgreifen??

    Gruß

    Max

    Edit:
    Obwohl ich jetzt

    #include<Windows.h>
    

    in meinem Code stehen habe, wird bei mir GetTimeZoneInformationForYear, _In_opt und pdtzi rot unterringelt.

    Hier mal die Funktion, die ich auf meinem Netbook habe, vielleicht habe ich einen Rechtschreibfehler, den ich nicht mehr sehe:

    bool winapi GetTimeInformationForYear(
      _In_     USHORT wYear,
      _In_opt  PDYNAMIC_TIME_ZONE_INFORMATION pdtzi,
      _Out_    LPTIME_ZONE_INFORMATION ptzi,
      );
    


  • Ich denke nicht, dass der Sinn der Aufgabe darin besteht, eine Windowsfunktion aufzurufen, die vor allem, wie Jochen Kalmbach bereits schrieb, erst ab Windows Vista mit SP1 verfügbar ist.
    Wenn du mal die absoluten Grundlagen beherrschst, dann ist eine mögliche Problemlösung nicht so schwer (es gibt bestimmt bessere, nur dieser Ansatz ist leicht zu vertsehen & zu programmieren): Was du brauchst:

    • Eine Funktion IstSchaltjahr(int jahr), die überprüft, ob das Jahr, das ihr als Parameter übergeben wurde, ein Schaltjahr ist (Rückgabe bool)
    • Eine Funktion, die Monat und Jahr als Parameter nimmt und die Anzahl der Tage zurück gibt (wegen Februar ist auch das Jahr wichtig, die Anzahl für Februar ist dann 28+IstSchaltjahr(jahr))
    • Als Herzstück eine Funkion ZaehleTage, die die Tage seit dem 1.1.1 berechnet (Parameter Tag, Monat, Jahr), in der die obigen Funktionen zum Einsatz kommen. Etwas aufpassen musst du nur wegen der Umstellung auf den gregorianischen Kalendar - sollte das Datum nach dem (übersprungenen) 14.10.1582 liegen (Anzahl der Tage ist größer als 577736), musst du 10 Tage abziehen (bei Interesse Wikipedia)
    • Als nächstes eine kleine Funktion, die den Wochentag als int liefert(0:Montag,6:Sonntag). Der 1.1.1 war ein Samstag, daher ist der Wochentag einfach (das Ergebnis von ZaehleTage+5)%7
    • Da die Sommerzeit immer jeweils am letzten Sonntag im März beginnt und am letzten Sonntag im Oktober endet, und beide Monate auch noch 31 Tage haben, kann jeweils der 25. der früheste Zeitpunkt sein. Der genaue Tag ist dann 25+6-das Ergebnis obiger Funktion

    Fertig :p .



  • Dann ist das ja doch umfangreicher als ich gedacht habe...



  • Ganz so schlimm ist es nicht, da die Sommerzeit in Deutschland teilweise seit 1916 genutzt wird. Dies liegt aber noch innerhalb der Zeitspanne von time()

    Auch die Anfangs und Endzeiten haben sich in der Zeit verschoben.
    Von 1980 bis 1995 war es z.B. der letzte Sontag im September.

    Du brauchst doch nur die struct tm füllen (Tag, Monat, Jahr, Uhrzeit) und mit mktime umwandeln (z.B. 31.03.2012 03:00) dann wieder mit localtime zurück.
    Dann hast du den Wochentag (0-6). Dies ist schon der Offset zu deinem gesuchten Tag. Also 31-Wochentag.
    Das gleich nochmal für das Ende.

    Das Problem ist, dass du noch nicht einmal mit diesen Funktionen klar kommst 😞



  • Die Regel ist für Deutschland ganz einfach, aber erst ab 2002!

    Verordnung
    über die Einführung der mitteleuropäischen Sommerzeit ab dem Jahr 2002
    )
    (Sommerzeitverordnung – SoZV)
    Vom 12. Juli 2001
    *

    Auf Grund des § 3 des Zeitgesetzes vom 25. Juli 1978 (BGBl. I S. 1110, 1262),
    der durch das Gesetz vom 13. September 1994 (BGBl. I S. 2322) geändert
    worden ist, verordnet die Bundesregierung:
    § 1
    Ab dem Jahr 2002 wird die mitteleuropäische Sommerzeit (§ 1 Abs. 4 des Zeitgesetzes) auf unbestimmte Zeit eingeführt.
    § 2
    (1) Die mitteleuropäische Sommerzeit beginnt jeweils am letzten Sonntag im
    März um 2 Uhr mitteleuropäischer Zeit. Im Zeitpunkt des Beginns der Sommerzeit wird die Stundenzählung um eine Stunde von 2 Uhr auf 3 Uhr vorgestellt.
    (2) Die mitteleuropäische Sommerzeit endet jeweils am letzten Sonntag im
    Oktober um 3 Uhr mitteleuropäischer Sommerzeit. Im Zeitpunkt des Endes der
    Sommerzeit wird die Stundenzählung um eine Stunde von 3 Uhr auf 2 Uhr
    zurückgestellt. Die Stunde von 2 Uhr bis 3 Uhr erscheint dabei zweimal. Die erste
    Stunde (von 2 Uhr bis 3 Uhr mitteleuropäischer Sommerzeit) wird mit 2 A und die
    zweite Stunde (von 2 Uhr bis 3 Uhr mitteleuropäischer Zeit) mit 2 B bezeichnet.
    § 3
    Das Bundesministerium des Innern gibt im Bundesanzeiger, beginnend mit
    dem Jahr 2002, für jeweils fünf aufeinander folgende Jahre Beginn und Ende
    der Sommerzeit bekannt.
    § 4
    Diese Verordnung tritt am Tage nach der Verkündung in Kraft.
    Berlin, den 12. Juli 2001
    D e r B u n d e s k a n z l e r
    G e r h a r d S c h r ö d e r
    D e r B u n d e s m i n i s t e r d e s I n n e r n
    S c h i l y

    http://www.egvp.de/pdf/rechtsvorschriften/FormvorschriftenanpassungsG.pdf

    Vor 2002 hat die Regierung immer festgelegt, wann die Sommerzeit ist. Dafür gibt es keine Regel, sondern nur eine Tabelle...



  • An Dirk & Jochen:
    Natürlich ist mir klar, dass im Jahr 981 im Heiligen Römischen Reich noch keine Einigung über die Sommerzeit erzielt wurde :p
    Ich wollte nur einen allgemeinen Ansatz für zzukünftige Sommerzeiten demonstrieren - die Programmierung ist auch eher trivial.


Anmelden zum Antworten