Se consideră patru numere întregi pozitive, primele trei din care reprezintă o data sub forma: an, luna, zi, iar ultimul – numărul de ordine al zilei din săptămână ce corespunde Anului Nou respectiv. Să se scrie un program ce stabileşte a câta zi din săptămână este ziua considerată aplicând: 1) instrucțunea If; 2) Instrucţiunea Case. Remarcă: ani bisecţi ai calendarului Gregorian sunt anii ce se împart la 4 si nu se împart la 100. Toţi anii ce se împart la 400 sunt ani bisecţi.
Răspunsuri la întrebare
Răspuns:
#include<iostream>
#include<cmath>
using namespace std;
string weekzi[7] = {"0","1","2","3", "4","5","6"}; // 0 - Reprezinta Sambata // 6 - Vineri
string AlgoritmZeller(int zi, int luna, int an){
int mon;
if(luna > 2)
mon = luna;
else{
mon = (12+luna);
}
int y = an % 100;
int c = an / 100;
int w = (zi + floor((13*(mon+1))/5) + y + floor(y/4) + floor(c/4) + (5*c));
w = w % 7;
return weekzi[w];
}
int main(){
int zi, luna, an;
cout << "Introduce Ziua: "; cin >>zi;
cout << "Introduce Luna: "; cin >>luna;
cout << "Introduce Anul: "; cin >>an;
cout << "Ziua este: " <<AlgoritmZeller(zi, luna, an);
}
Problema a sunat cam asa :
Se consideră patru numere întregi pozitive,
primele trei numere sa reprezinte zi , luna, an
iar ultimul numar trebuie sa afiseze Ziua din saptamana respectiva
Am folosit Algoritmul lui Zeller care calculeaza si anii bisecti :
⟮d+⌊13(m+1)5⌋+y+⌊y4⌋+⌊c4⌋+5c⟯mod7
Ex out: ziua de azi 8 zi / luna 11 an 2020 afiseaza cifra 1 (Duminica)
Sper sa iti fie de folos
Explicație: