Ich versuche, ein einfaches Programm in C++ zu schreiben, das den Wochentag für ein bestimmtes Datum zurückgibt.C++ Wochentag für gegebenes Datum
Das Eingabeformat ist Tag, Monat, Jahr. Ich kann es nicht mit Schaltjahren arbeiten lassen. Ich habe versucht, eins von der a
Variable zu subtrahieren, wenn das eingegebene Jahr ein Schaltjahr ist, aber das Programm stürzt gerade ohne eine Fehlermeldung ab.
Ich würde mich über Vorschläge freuen, aber bitte versuchen Sie einfach zu bleiben, ich bin noch ein Anfänger. Entschuldigung für die dumme Frage, und bitte entschuldigen Sie meine Fehler, dies ist das erste Mal, dass ich auf dieser Seite poste.
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int d;
int m;
int y;
string weekday(int d, int m, int y){
int LeapYears = (int) y/ 4;
long a = (y - LeapYears)*365 + LeapYears * 366;
if(m >= 2) a += 31;
if(m >= 3 && (int)y/4 == y/4) a += 29;
else if(m >= 3) a += 28;
if(m >= 4) a += 31;
if(m >= 5) a += 30;
if(m >= 6) a += 31;
if(m >= 7) a += 30;
if(m >= 8) a += 31;
if(m >= 9) a += 31;
if(m >= 10) a += 30;
if(m >= 11) a += 31;
if(m == 12) a += 30;
a += d;
int b = (a - 2) % 7;
switch (b){
case 1:
return "Monday";
case 2:
return "Tuesday";
case 3:
return "Wednesday";
case 4:
return "Thursday";
case 5:
return "Friday";
case 6:
return "Saturday";
case 7:
return "Sunday";
}
}
int main(){
cin >> d >> m >> y;
cout << weekday(d, m, y);
}
Was passiert, wenn man durch sie in Ihrem Debugger Schritt? – MrEricSir
Es gibt kein einfaches Programm, wenn es um Daten geht (gehen Sie ask jon skeet). Diese Funktionalität existiert bereits, warum erfinden Sie sie neu. –
Es gibt eine einfache Formel für die Berechnung. Siehe https://en.wikipedia.org/wiki/Determination_of_the_day_of_the_week –