diff --git a/Kalender/Tage seit.cpp b/Kalender/Tage seit.cpp index 55c076c..d87b7d1 100644 --- a/Kalender/Tage seit.cpp +++ b/Kalender/Tage seit.cpp @@ -1,4 +1,5 @@ #include +#include #include #include 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: "; - getline(std::cin, stringInput); - std::stringstream(stringInput) >> day; - - if(day>31 || day<1) + do { - std::cout << "ERROR: Der eingegebene Tag existiert nicht."; - return(1); - } + getline(std::cin, stringInput); + std::stringstream(stringInput) >> day; + 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: "; - getline(std::cin, stringInput); - std::stringstream(stringInput) >> month; - - if(month>12 || month<1) + std::cout << "Gib den Monat ein: "; + do { - 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]++; + getline(std::cin, stringInput); + std::stringstream(stringInput) >> month; + 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: "; - getline(std::cin, stringInput); - std::stringstream(stringInput) >> year; - - if(year<0) + do { - 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); - } + getline(std::cin, stringInput); + std::stringstream(stringInput) >> year; + 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); }