Salve sto avendo un problema nel capire come funzioni questo codice ovvero questo codice (modificato un pò da me) inserito un giorno e un mese del 2022 dice che giorno è.
Non riesco ben a capire i calcoli che fa (so solo che usa la formula dell'Algoritmo Doomsday) e di questa variabile.
C++:
#include <iostream>
using namespace std;
int main()
{
// useremo questa formula x = anno + (anno - 1) : 4 - (anno - 1) : 100 + (anno - 1) : 400 + tempo_trascorso, formuala di Algoritmo Doomsday
int giorno,mese,anno=2022,x=0,tempo_trascorso;
int mesi[13] ={1,31,59,90,120,151,181,212,243,273,304,334,365};
cout << "Inserire il giorno: ";
cin >> giorno;
cout << "Mese: ";
cin >> mese;
if(anno==2022)
{
x = anno + (anno-1)/4 - (anno-1)/100 + (anno - 1)/400;
tempo_trascorso=giorno+mesi[mese-1];
if(mese > 2 && anno % 4 == 0 && (mese % 100 != 0 || anno % 400 == 0))
{
tempo_trascorso+=1;
}
}else
{
x = anno + (anno-1)/4;
tempo_trascorso=giorno+mesi[mese-1];
tempo_trascorso-=2;
if(mese > 2 && anno % 4 == 0 && (anno % 100 != 0 || anno % 400 == 0))
{
tempo_trascorso+=1;
}
}
x+=tempo_trascorso;
x%=7;
cout <<"Il "<< giorno << "-" << mese << "-" << anno;
switch(x){
case 0:
cout << " é Sabato\n";
break;
case 1:
cout << " é Domenica\n";
break;
case 2:
cout << " é Lunedi\n";
break;
case 3:
cout << " é Martedi\n";
break;
case 4:
cout << " é Mercoledi\n";
break;
case 5:
cout << " é Giovedi\n";
break;
case 6:
cout << " é Venerdi\n";
break;
}
return 0;
}
Non riesco ben a capire i calcoli che fa (so solo che usa la formula dell'Algoritmo Doomsday) e di questa variabile.
int mesi[13] ={1,31,59,90,120,151,181,212,243,273,304,334,365};