👤
a fost răspuns

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ăspuns :

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: