nur bis bestimmter zahl rechnen?



  • wie kann man eigentlich nur bis zu bestimmten zahlen rechnen?
    also zum beispiel wenn man von jahren ausgeht.
    z.B: prog. soll rechnen wieviel tage von 03.09.02 bis 09.08.04 sind.
    wie muss ich das da anstellen? 😕 könnte da vielleicht jemand nen kleinen beispielsyntax schreiben zum hier angegebenen beispiel?, muss ned dasselbe datum sein...
    hab zwar schon was gefunden, komm aber damit nicht so wirklich klar.
    danke im voraus



  • Und nun die Quizfrage des Tages... Wieviel ist es von 5 bis 9? Puh wer hats gemerkt? Man kann 9-5 rechnen! - Btw ist es ab geschicktestens wenn man es in das time_t Format speichert, oder man verwendet boost. Schau dir doch erstmal das Beispiel auf der Page an, oder lies in der MSDN nach.

    Gruß



  • na toll du held...
    mal daran gedacht das es mir um jahres/monats/tagesangaben geht?
    das heisst man müsste das rechnen auf einmal bis 31 begrenzen und einmal auf 12! also so das er bei 12 o. 31 wieder zur 1 springt und da weiterrechnet.
    hoffe das das jetz hier mal besser zu verstehen ist!!



  • bLaCk-DrAG0n schrieb:

    na toll du held...
    mal daran gedacht das es mir um jahres/monats/tagesangaben geht?
    das heisst man müsste das rechnen auf einmal bis 31 begrenzen und einmal auf 12! also so das er bei 12 o. 31 wieder zur 1 springt und da weiterrechnet.
    hoffe das das jetz hier mal besser zu verstehen ist!!

    dragon

    hallo

    du solltest die post erstmal genau durchlesen ( hast du nicht getan )

    und die wörter die du nicht kennst erst einmal in google oder so suchen ( z.b. time_t Format )

    dann hätte sich dein Post erübrigt!



  • bLaCk-DrAG0n schrieb:

    na toll du held...
    mal daran gedacht das es mir um jahres/monats/tagesangaben geht?
    das heisst man müsste das rechnen auf einmal bis 31 begrenzen und einmal auf 12! also so das er bei 12 o. 31 wieder zur 1 springt und da weiterrechnet.
    hoffe das das jetz hier mal besser zu verstehen ist!!

    mal daran gedacht, dass du einfach kein Plan hast und fireflows Ratschläge umsetzen



  • .. schrieb:

    bLaCk-DrAG0n schrieb:

    na toll du held...
    mal daran gedacht das es mir um jahres/monats/tagesangaben geht?
    das heisst man müsste das rechnen auf einmal bis 31 begrenzen und einmal auf 12! also so das er bei 12 o. 31 wieder zur 1 springt und da weiterrechnet.
    hoffe das das jetz hier mal besser zu verstehen ist!!

    mal daran gedacht, dass du einfach kein Plan hast und fireflows Ratschläge umsetzen

    ja klar hab ich kein plan, aber deswegen versuch ich ja das zu ändern...
    hab jetz zwar das time_t usw. gefunden, hab aber absolut kein plan wie ich es anwenden soll. hab echt kein plan wie ich was machen soll



  • wenn du einfach nur fertigen Code vor die Nase gesetzt bekommen willst bist du hier wohl eher falsch, insbesondere mit der Art deiner Fragestellung

    Köpfchen anstrengen wäre schon durchaus hilfreich, und in der MSDN nach time_t suchen

    und selbst wenn du das nicht verwendest is es mit ein bisschen nachdenken auch möglich selbst eine Datumsklasse zu schreiben, du musst im Prinzip nur kontrollieren welcher Monat es is und wie viele Tage der Monat daher hat, dann kannst du ohne größere Probleme die Tage zwischen 2 Daten zählen

    theduke



  • the-duke schrieb:

    wenn du einfach nur fertigen Code vor die Nase gesetzt bekommen willst bist du hier wohl eher falsch, insbesondere mit der Art deiner Fragestellung

    Köpfchen anstrengen wäre schon durchaus hilfreich, und in der MSDN nach time_t suchen

    und selbst wenn du das nicht verwendest is es mit ein bisschen nachdenken auch möglich selbst eine Datumsklasse zu schreiben, du musst im Prinzip nur kontrollieren welcher Monat es is und wie viele Tage der Monat daher hat, dann kannst du ohne größere Probleme die Tage zwischen 2 Daten zählen

    theduke

    Mann kann sich das Leben aber auch erleichtern und z.B. die Funktion difftime() verwenden :).

    @black-dragon: Folgender Denkanstoß:
    Gehe auf http://www.cppreference.com/stddate/. Dort schaust du dir die Funktionen mktime() und difftime() an.

    Grundsätzlich: time_t ist ein typedef auf long:

    typedef	long	time_t;
    

    .
    Die Struktur tm sieht folgendermaßen aus:

    struct tm
    {
    	int	tm_sec;		/* Seconds: 0-59 (K&R says 0-61?) */
    	int	tm_min;		/* Minutes: 0-59 */
    	int	tm_hour;	/* Hours since midnight: 0-23 */
    	int	tm_mday;	/* Day of the month: 1-31 */
    	int	tm_mon;		/* Months *since* january: 0-11 */
    	int	tm_year;	/* Years since 1900 */
    	int	tm_wday;	/* Days since Sunday (0-6) */
    	int	tm_yday;	/* Days since Jan. 1: 0-365 */
    	int	tm_isdst;	/* +1 Daylight Savings Time, 0 No DST,
    				 * -1 don't know */
    };
    

    Der folgende (gedankliche) Weg in Code umgesetzt sollte dich jetzt auf die Lösung bringen:

    - Dein erstes Datum in eine Struktur vom Typ tm konvertieren.
    - Diese Datum vom Typ tm über die Funktion mktime() in Sekunden umwandeln.
    - Obige Schritte auch für dein zweites Datum wiederholen.
    - Die Funktion difftime() auf die beiden Daten anwenden.
    

    Caipi


Anmelden zum Antworten