Do while Schleifen ergänzt
This commit is contained in:
parent
2b2ce05ea6
commit
888495724b
1 changed files with 21 additions and 37 deletions
|
@ -1,4 +1,5 @@
|
|||
#include<iostream>
|
||||
#include<conio.h>
|
||||
#include<string>
|
||||
#include<sstream>
|
||||
int main()
|
||||
|
@ -8,48 +9,31 @@ int main()
|
|||
short daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30};
|
||||
|
||||
std::cout << "Gib den Tag des Monats ein: ";
|
||||
do
|
||||
{
|
||||
getline(std::cin, stringInput);
|
||||
std::stringstream(stringInput) >> day;
|
||||
|
||||
if(day>31 || day<1)
|
||||
{
|
||||
std::cout << "ERROR: Der eingegebene Tag existiert nicht.";
|
||||
return(1);
|
||||
}
|
||||
if(day>31 || day<1) std::cout << "ERROR: Der eingegebene Tag existiert nicht. Gib einen Tag zwischen 1 und 31 ein: ";
|
||||
}while(day>31 || day<1);
|
||||
|
||||
std::cout << "Gib den Monat ein: ";
|
||||
do
|
||||
{
|
||||
getline(std::cin, stringInput);
|
||||
std::stringstream(stringInput) >> month;
|
||||
|
||||
if(month>12 || month<1)
|
||||
{
|
||||
std::cout << "ERROR: Der eingegebene Monat existiert nicht.";
|
||||
return(1);
|
||||
}
|
||||
|
||||
if(day>daysInMonth[month] && month!=2 || month==2 && day>29)
|
||||
{
|
||||
std::cout << "ERROR: Es wurden zuviele Tage f\x81r diesen Monat eingegeben.";
|
||||
return(1);
|
||||
}
|
||||
|
||||
if(day==29 && month==2) daysInMonth[1]++;
|
||||
else if(month>12 || month<1) std::cout << "ERROR: Der eingegebene Monat existiert nicht. Gib einen Monat zwischen 1 und 12 ein: ";
|
||||
else if(day>daysInMonth[month-1]) std::cout << "ERROR: Der eingegebene Monat hat nicht genug Tage. Gib einen anderen Monat ein: ";
|
||||
}while(month>12 || month<1 || day>daysInMonth[month-1]);
|
||||
|
||||
std::cout << "Gib das Jahr ein: ";
|
||||
do
|
||||
{
|
||||
getline(std::cin, stringInput);
|
||||
std::stringstream(stringInput) >> year;
|
||||
|
||||
if(year<0)
|
||||
{
|
||||
std::cout << "ERROR: Der 1. Januar 0 liegt in der Zukunft.";
|
||||
return(1);
|
||||
}
|
||||
|
||||
if(day==29 && month == 2 && (year%4!=0 || year%100==0 && year%400!=0))
|
||||
{
|
||||
std::cout << "ERROR: Die bereits erfolgten Eingaben benötigen ein Schaltjahr.";
|
||||
return(1);
|
||||
}
|
||||
if(year<0) std::cout << "ERROR: Das Datum liegt vor dem 1. Januar 0. Gib ein Jahr nach dem 1. Januar 00 ein: ";
|
||||
else if(day==29 && month == 2 && (year%4!=0 || year%100==0 && year%400!=0)) std::cout << "ERROR: Die bereits erfolgten Eingaben benötigen ein Schaltjahr. Gib ein anderes Jahr ein: ";
|
||||
}while(year<0 || day==29 && month == 2 && (year%4!=0 || year%100==0 && year%400!=0));
|
||||
|
||||
std::cout << "\nVom 1. Januar 0 bis zum " << day << "." << month << "." << year;
|
||||
|
||||
|
@ -60,6 +44,6 @@ int main()
|
|||
|
||||
std::cout << " sind " << year*365+year/4-year/100+year/400+day-1 <<" Tage vergangen.";
|
||||
|
||||
getchar();
|
||||
getch();
|
||||
return(0);
|
||||
}
|
||||
|
|
Reference in a new issue