This repository has been archived on 2024-09-24. You can view files and clone it, but cannot push or open issues or pull requests.
Schule/Kalender/weekday.cpp

65 lines
2.1 KiB
C++
Raw Permalink Normal View History

2017-04-02 17:06:39 +02:00
#include<iostream>
#include<string>
#include<sstream>
#include<conio.h>
2017-12-05 19:23:11 +01:00
#include <stdio.h>
2017-04-02 17:06:39 +02:00
int main()
{
2017-04-08 17:40:10 +02:00
//Aufgabe: Kombiniere dieses Programm mit dem jeweils anderen im Kalender Ordner.
2017-04-02 17:06:39 +02:00
2017-04-08 17:40:10 +02:00
std::string input;
unsigned short day = 0, month = 0, daysInMonth[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, year = 0;
2017-04-02 17:06:39 +02:00
2017-12-05 19:23:11 +01:00
printf("Gib den Tag des Monats ein: ");
2017-04-08 17:40:10 +02:00
do
2017-04-02 17:06:39 +02:00
{
2017-04-08 17:40:10 +02:00
getline(std::cin, input);
std::stringstream(input) >> day;
2017-12-05 19:23:11 +01:00
if(day>31 || day<1) printf("ERROR: Der eingegebene Tag existiert nicht. Gib einen Tag zwischen 1 und 31 ein: ");
2017-04-08 17:40:10 +02:00
}while(day>31 || day<1);
2017-04-02 17:06:39 +02:00
2017-12-05 19:23:11 +01:00
printf("Gib den Monat ein: ");
2017-04-08 17:40:10 +02:00
do
2017-04-02 17:06:39 +02:00
{
2017-04-08 17:40:10 +02:00
getline(std::cin, input);
std::stringstream(input) >> month;
2017-12-05 19:23:11 +01:00
if(month>12 || month<1) printf("ERROR: Der eingegebene Monat existiert nicht. Gib einen Monat zwischen 1 und 12 ein: ");
else if(day>daysInMonth[month-1]) printf("ERROR: Der eingegebene Monat hat nicht genug Tage. Gib einen anderen Monat ein: ");
2017-04-08 17:40:10 +02:00
}while(month>12 || month<1 || day>daysInMonth[month-1]);
2017-12-05 19:23:11 +01:00
printf("Gib das Jahr ein: ");
2017-04-08 17:40:10 +02:00
do
2017-04-02 17:06:39 +02:00
{
2017-04-08 17:40:10 +02:00
getline(std::cin, input);
std::stringstream(input) >> year;
2017-12-05 19:23:11 +01:00
if(year<0) printf("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)) printf("ERROR: Die bereits erfolgten Eingaben ben<65>tigen ein Schaltjahr. Gib ein anderes Jahr ein: ");
2017-04-08 17:40:10 +02:00
}while(year<0 || day==29 && month == 2 && (year%4!=0 || year%100==0 && year%400!=0));
2017-04-02 17:06:39 +02:00
2017-12-05 19:23:11 +01:00
printf("\nDer %i.%i.%i ist ein ", day, month, year);
2017-04-02 17:06:39 +02:00
if(month==1 || month==2) year -=1;
2017-04-02 17:42:04 +02:00
if(month==1) month = 0;
else if(month==8) month = 1;
else if(month==2 || month==6) month = 3;
else if(month==9 || month==12) month = 4;
else if(month==4 || month==7) month = 5;
else if(month == 10) month = 6;
else month = 2;
2017-04-02 17:06:39 +02:00
2017-04-08 17:40:10 +02:00
day = (day+month+(year%100)+(year%100/4)+year/400-2*(year/100))%7;
2017-04-02 17:06:39 +02:00
2017-04-08 17:40:10 +02:00
while(day<0) day += 7;
2017-12-05 19:23:11 +01:00
if(day==0) printf("Sonntag");
else if(day==1) printf("Montag");
else if(day==2) printf("Dienstag");
else if(day==3) printf("Mittwoch");
else if(day==4) printf("Donnerstag");
else if(day==5) printf("Freitag");
else printf("Samstag");
2017-04-02 17:06:39 +02:00
getch();
return(0);
}