Zdravím,
teprve začínám s programováním v C++ a udělal jsem program založený na vzorci z tohoto webu: http://mathforum.org/dr.math/faq/faq.calendar.html
Při startu programu se zadá datum ve formátu dd mm yyyy. Ten podle potom rozdělí dny, měsíce, stolení a desetiletí. Potom se vypočte výsledek podle vzorce a určí, který den byl. Určování dní mám zatím vypnuté a vložil jsem řádek, který mi vypíše veškeré vypočtené hodnoty kvůli kontrole.
Zde nastává ten problém. Měsíc se pokaždé rovná 1. Přikládám zdroják a doufám, že mi snad někdo poradí.
Děkuji. :)
#include <iostream>
using namespace std;
int main() {
int f, k, m, y, D, C, den;
cout << "Enter date";
cin >> k;
cin >> m;
cin >> y;
switch (m) {
case 1:
m = 11;
break;
case 2:
m = 12;
break;
case 3:
m = 1;
break;
case 4:
m = 2;
break;
case 5:
m = 3;
break;
case 6:
m = 4;
break;
case 7:
m = 5;
break;
case 8:
m = 6;
break;
case 9:
m = 7;
break;
case 10:
m = 8;
break;
case 11:
m = 9;
break;
case 12:
m = 10;
break;
default:
cout << "Wrong choice.\n";
break;
}
C = (y / 100);
D = y % 100;
if (m = 1)
D--;
else if (m = 2)
D--;
f = k + ((13 + m - 1) / 5) + D + (D / 4) + (C / 4) - 2 * C;
den = f % 7;
/* switch (den) {
case 0:
cout << "Nedele\n";
break;
case 1:
cout << "Pondeli\n";
break;
case 2:
cout << "Utery\n";
break;
case 3:
cout << "Streda\n";
break;
case 4:
cout << "Ctvrtek\n";
break;
case 5:
cout << "Patek\n";
break;
case 6:
cout << "Sobota\n";
break;
}*/
//thus is part of program, but turned off, because i need to explore the mistake
cout << "k=" << k << endl << "m=" << m << endl << "C=" << C << endl << "D=" << D << endl << "f=" << f << endl << "den=" << den << endl;
//this can show me the mistake. The mistake is in mounth, but i don't know where...
return 0;
}