Sommer-/Winterzeit auslesen



  • silent_max schrieb:

    Ich dachte, dass der Rechner automatisch zwischen Sommer- und Winterzeit unterscheidet...

    Kann er auch.
    Nur lies mal nach, was für ein Typ das Element tm_isdst in der struct tm ist und was die Werte darin bedeuten.

    Und zur Erinnerung: Wir haben Normalzeit.

    Und schau dir mal die fast gleichen Wörtern Zeile 60 und 63 an.



  • silent_max schrieb:

    krümelkacker schrieb:

    silent_max, was hast du denn im ersten Fall für eine Ausgabe erwartet und warum?

    Ich wollte im ersten Fall die Jahreszeit ausgeben.

    Und wo steht die Jahreszeit drin, die ausgegeben werden soll?

    Ich wünsche mir von dir mehr Eigeninitiative.

    Dein Problem ist ähnlich wie das hier:

    cout << 5 << endl; // hier soll 4 ausgegeben werden, warum bekomme ich keine 4?
    


  • DirkB schrieb:

    Kann er auch.
    Nur lies mal nach, was für ein Typ das Element tm_isdst in der struct tm ist und was die Werte darin bedeuten.

    Und zur Erinnerung: Wir haben Normalzeit.

    Und schau dir mal die fast gleichen Wörtern Zeile 60 und 63 an.

    Stimmt, die Werte sind vom Typ Integer.

    Hm ...

    Kann man eine Variable vom Typ Integer in einen String umwandeln?? Wie meinst Du das mit "[...] Wir haben Normalzeit."??



  • silent_max schrieb:

    Kann man eine Variable vom Typ Integer in einen String umwandeln??

    das geht beispielsweise so:

    int i = 5;
    std::stringstream ss;
    ss << "Inhalt von 'i': " << i;
    
    cout << ss.str();
    


  • silent_max schrieb:

    Kann man eine Variable vom Typ Integer in einen String umwandeln??

    Meinst du so wie bei den Wochentagen?

    silent_max schrieb:

    Wie meinst Du das mit "[...] Wir haben Normalzeit."??

    Das die 0 richtig ist.
    Falls dich der Name stört: Es gibt nur Sommerzeit. Das was du als Winterzeit bezeichnest ist die Normalzeit.



  • Ich kann ja schlecht schreiben

    if(Frage=="Welche Jahrezeit haben wir?")
    {
    	char Winterzeit;
    	char Sommerzeit;
    	int tm_isdst = static_cast<char>(tm_isdst);
    	int (0) = static_cast<char>(Winterzeit);
    	int (>0) = static_cast<char>(Sommerzeit); 
    	cout << "\n";
    	cout << "\t" << pUhrzeit ->tm_isdst << "\n"; //Jahreszeit
    	cout << "\n";
    }
    

    Zumindest ich bekomme bei meinem Compiler folgende Meldungen:

    -> Bei dem zweiten int bekomme ich die Meldung ""Der Ausdruck muss ein änderbarer Ivalue sein".

    -> Bei dem dirtten int bekomme ich bei dem Größerzeichen die Meldung "Es wurde ein Ausdruck erwartet".

    Muss da nicht eine Fallunterscheidung zwischen 0 und >0 gemacht werden oder bin ich auf´m Holzweg?

    Gruß



  • So etwa ?

    cout << "\t" << (pUhrzeit ->tm_isdst) ? "Sommerzeit" : "Normalzeit" << "\n"; //Jahreszeit
    


  • Da kommt bei mir bei Normalzeit die Meldung

    Error: Der Ausdruck muss einen integralen Typ oder einen Enumerationstyp aufweisen
    


  • silent_max, du solltest ein bißchen mehr Eigeninitiative (beim Programmieren) zeigen...

    Hinweis: Klammerung



  • Th69 schrieb:

    silent_max, du solltest ein bißchen mehr Eigeninitiative (beim Programmieren) zeigen...

    Hinweis: Klammerung

    Wie denn, wenn ich die Syntax nicht weiß??

    Ich habe jetzt

    cout << "\t" << (pUhrzeit -> tmisdst)?(Sommerzeit):(Normalzeit) << "\n";
    

    geschrieben und dennoch kommt bei der Klammer von Normalzeit die Meldung

    Error: Der Ausdruck muss einen integralen Typ oder einen Enumerationstyp aufweisen
    

    Die Meldung kommt bei mir zudem bei "\n".

    Den Bedingungsoperator habe ich erst durch DirkB kennengelernt.

    Sorry


  • Mod



  • SeppJ schrieb:

    Initiative!

    Die Initiazivpräzedenz bei silent_max scheint zu sein:

    1. Im Forum machen lassen
    2. Im Forum fragen
    3. Von Kollegen machen lassen
    4. Kollegen fragen
    5. Nichts machen
    6. Im Internet suchen
    7. Im Unterricht aufpassen
    8. Sein C++-Buch lesen

    Notes:
    The silent_max itself doesn't specify precedence levels. They are derived from the behaviour.

    Dass er in seinem Buch nicht weit vorangeschritten ist, hat er selbst verraten

    Den Bedingungsoperator habe ich erst durch DirkB kennengelernt.



  • silent_max schrieb:

    Th69 schrieb:

    silent_max, du solltest ein bißchen mehr Eigeninitiative (beim Programmieren) zeigen...

    Wie denn, wenn ich die Syntax nicht weiß??

    Du bekommst doch Feedback vom Compiler, Linker oder von deinem Programm selbst (wenn es läuft). Da musst nur dein Hirn einschalten, nachdenken und ggf etwas recherchieren, z.B. die Fehlermeldung, die du siehst. Oder schau im C++ Buch nach. Oder verwende den Debugger um zu sehen, was dein Programm macht. Aktuell kommt das leider so rüber, als wenn du zu faul wärst, wenigstens zu versuchen, deine Probleme selbst zu lösen. Das grenzt sogar an Trollerei, das Verhalten.



  • silent_max schrieb:

    (Sommerzeit):(Normalzeit)
    

    Diese Klammern sind genauso überflüssig wie die Klammern im folgenden Ausdruck:

    (5)+(3)*2
    


  • Bitte versteht mich jetzt nicht falsch... aber komme ich wirklich als so faul rüber??

    Ich werde versuchen, diesen Eindruck so schnell wie möglich zu revidieren. Bitte entschuldigt an der Stelle, dass ich wie bisher unterwegs war. Zudem werde ich versuchen, nur noch die allerwichtigsten Fragen zu posten.

    Edit:

    Darf ich überhaupt noch etwas posten oder habe ich jetzt jeden verkrault?



  • silent_max schrieb:

    Bitte versteht mich jetzt nicht falsch... aber komme ich wirklich als so faul rüber??

    ganz ruhig. Es ist leider nicht erkennbar, dass du in irgendeiner Weise Fortschritte machst. Das in Zusammenhnag mti dem teilweise etwas rauen Umgangston hier führt dann zu den Reaktionen.

    Natürlich darfst du Fragen stellen. Es sollte nur erkennbar sein, dass du Eigeninitiative zeigst.



  • Ich habe jetzt einmal einen anderen Weg versucht...

    if(Frage=="Welche Jahrezeit haben wir?")
    		{
    			time_t AktuelleZeit;
    			AktuelleZeit = time(NULL); //Aktuelle Systemzeit ermitteln
    			pUhrzeit = localtime(&AktuelleZeit);
    			cout << pUhrzeit->tm_isdst;
    		}
    

    Ich verstehe einfach nicht, dass bei mir in der Ausgabe bei der Frage rein gar nichts angezeigt wird, obwohl ich doch eindeutig nach der aktuellen Zeit gefragt habe????

    Gruß



  • silent_max schrieb:

    Ich verstehe einfach nicht, dass bei mir in der Ausgabe bei der Frage rein gar nichts angezeigt wird, obwohl ich doch eindeutig nach der aktuellen Zeit gefragt habe????

    siehst du, das ist noch so ein Problem von dir.

    vor diversen Posts wurdest du bereits darauf hingewiesen, dass du da einen Schreibfehler hast.

    Ich habe dich auf den Debugger hingewiesen. Damit könntest du Schritt für Schritt durch den Programmfluss gehen und schauen, in welche if-Anweisung er reingeht (oder eben nicht). Dann könntest du dir den genauen Inhalt der Variabel "Frage" ansehen und (Buchstabe für Buchstabe!) mit der Bedingung vergleichen.

    offensichtlich hast du das alles ignoriert.



  • daddy_felix schrieb:

    siehst du, das ist noch so ein Problem von dir.

    vor diversen Posts wurdest du bereits darauf hingewiesen, dass du da einen Schreibfehler hast.

    offensichtlich hast du das alles ignoriert.

    Das mit dem Rechtschreibfehler habe ich erst durch Dein Posting realisiert. Ich habe es bisher echt nicht überrissen, dass ich im Programmcode einen Rechstschreibfehler habe...

    Ich muss echt konzentrierter lesen bzw. bei der Sache sein...

    Sorry nochmal.

    P.S.: Jetzt funktioniert es.



  • silent_max schrieb:

    Das mit dem Rechtschreibfehler habe ich erst durch Dein Posting realisiert. Ich habe es bisher echt nicht überrissen, dass ich im Programmcode einen Rechstschreibfehler habe...

    Im Eröffnungspost war das Programm auch noch richtig. Nur deine Frage war falsch.

    Beim zweiten Post war dann auch das Programm falsch.


Anmelden zum Antworten