(c++) Zwischenwerte addieren mit for-Schleife

Wreeze

Ensign
Registriert
Dez. 2004
Beiträge
136
hallo,

ich mache als Übung ein Programm, dass alle Tage zwischen 2 eingegeben Datums errechnet. Erstmal nur innerhalb eines Jahres. Dazu habe ich jeden monat mit seinen Tagen initialisiert. (Januar mit 31 Tagen usw..)
Nun hab ich folgndes Problem, dass ich nicht durch for-Schleife beheben kann:
gibt man beispielsweise ein, die Tage zwischen dem 5 März und dem 6 Juni zu berechnen, weiß ich nicht, wie er die Summe der vollen zwischenliegenden Monate zum endergebnis dazurechnen soll. Ich bin noch anfänger in diesen gebiet. vielleicht geht es irgendwie mit normalen Arrays? Ich bin für jeden Vorschlag dankbar.

Hier mal der unvollendete Quelltext:

#include <iostream.h>
//Programm zu berechenen der Tage, die zwischen 2 Daten vergehen

void main()

{
int jan=31,feb=28,mar=30,apr=30,mai=31,jun=30,jul=31,aug=31,sep=30,okt=31,nov=30,dez=31; //monate initialisiert
int tagI,monI,jahI,tagO,monO; //I=Input, O=Output
int zwischen1,zwischen2,tage; //zwischenspeicherungswerte
int x,y,z;

cout<<"Dieses Programm berechnet die vergangenen Tage zwischen 2 eigegebenen Datums"<<endl;
cout<<endl;

cout<<"Datum von:"<<endl;
cout<<"Tag:"<<endl;
cin>>tagI;

cout<<"Monat:"<<endl;
cin>>monI;

switch(monI)
{
case 1: cout<<"Januar"<<endl;
zwischen1=jan-tagI;
break;
case 2: cout<<"Februar"<<endl;
zwischen1=feb-tagI;
break;
case 3: cout<<"Maerz"<<endl;
zwischen1=mar-tagI;
break;
case 4: cout<<"April"<<endl;
zwischen1=apr-tagI;
break;
case 5: cout<<"Mai"<<endl;
zwischen1=mai-tagI;
break;
case 6: cout<<"Juni"<<endl;
zwischen1=jun-tagI;
break;
case 7: cout<<"Juli"<<endl;
zwischen1=jul-tagI;
break;
case 8: cout<<"August"<<endl;
zwischen1=aug-tagI;
break;
case 9: cout<<"September"<<endl;
zwischen1=sep-tagI;
break;
case 10:cout<<"Oktorber"<<endl;
zwischen1=okt-tagI;
break;
case 11:cout<<"November"<<endl;
zwischen1=nov-tagI;
break;
case 12:cout<<"Dezember"<<endl;
zwischen1=dez-tagI;
break;
}

cout<<"-> "<<zwischen1<<endl;

cout<<"Datum bis:"<<endl;
cout<<"Tag:"<<endl;
cin>>tagO;

cout<<"Monat:"<<endl;;
cin>>monO;

switch(monO)
{
case 1: cout<<"Januar"<<endl;

break;
case 2: cout<<"Februar"<<endl;

break;
case 3: cout<<"Maerz"<<endl;

break;
case 4: cout<<"April"<<endl;

break;
case 5: cout<<"Mai"<<endl;

break;
case 6: cout<<"Juni"<<endl;

break;
case 7: cout<<"Juli"<<endl;

break;
case 8: cout<<"August"<<endl;

break;
case 9: cout<<"September"<<endl;

break;
case 10:cout<<"Oktorber"<<endl;

break;
case 11:cout<<"November"<<endl;

break;
case 12:cout<<"Dezember"<<endl;

break;
}

for(x=monI;x=monO;x++)
{
cout<<" tage";
}

zwischen2=zwischen1+tagO;
cout<<"erstmal nur fuer 2 aufeinander folgende Monate gueltig: "<<zwischen2<<endl;

}
 
Ja also die anzahl der Tag von den Monaten, kann man mit einem Array lösen, dazu gab es schon mal eine schöne unterhaltung. Klick
Vieleicht hilft dir das ja etwas weiter, insbesondere in den letzten Posts. :)
 
Wreeze schrieb:
hallo,

ich mache als Übung ein Programm, dass alle Tage zwischen 2 eingegeben Datums errechnet. Erstmal nur innerhalb eines Jahres. Dazu habe ich jeden monat mit seinen Tagen initialisiert. (Januar mit 31 Tagen usw..)
Nun hab ich folgndes Problem, dass ich nicht durch for-Schleife beheben kann:
gibt man beispielsweise ein, die Tage zwischen dem 5 März und dem 6 Juni zu berechnen, weiß ich nicht, wie er die Summe der vollen zwischenliegenden Monate zum endergebnis dazurechnen soll. Ich bin noch anfänger in diesen gebiet. vielleicht geht es irgendwie mit normalen Arrays? Ich bin für jeden Vorschlag dankbar.

Hier mal der unvollendete Quelltext:


Also am einfachsten ist es, wenn du das Datum zuerst in die vergangenen Tage umrechnest, dann brauchst du die Werte nur noch von einander zu subtrahieren und schon hast du die Differenz. Die Berechnungsgrundlage ist deutlich einfacher als man zunächst meinen sollte, wenn man ein wenig trickst und das Jahr einfach 3 Monate später anfangen lässt, erläutert wird das ganze hier
 
Zuletzt bearbeitet:
Zurück
Oben