Nazwa dnia tygodnia z tablicy znaków

Projekt: wieczny kalendarz - Podstawy C++ (C++)

Numer dnia zamieniamy na nazwę. Nazwy trzymamy w tablicy dwuwymiarowej znaków (każda nazwa to wiersz znaków). Indeks 0 to poniedzialek.

#include <iostream>
using namespace std;

bool przestepny(int r) {
  return (r % 4 == 0 && r % 100 != 0) || r % 400 == 0;
}

int dniMiesiaca(int m, int r) {
  int dni[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  if (m == 2 && przestepny(r)) {
    return 29;
  }
  return dni[m - 1];
}

int dzienTygodnia(int d, int m, int r) {
  int suma = 0;
  for (int y = 1; y < r; y++) {
    suma += przestepny(y) ? 366 : 365;
  }
  for (int mc = 1; mc < m; mc++) {
    suma += dniMiesiaca(mc, r);
  }
  suma += d - 1;
  return suma % 7;
}

int main() {
  char nazwy[7][13] = {"poniedzialek", "wtorek", "sroda", "czwartek",
                       "piatek", "sobota", "niedziela"};
  int w = dzienTygodnia(28, 6, 2026);
  cout << "28.06.2026 to " << nazwy[w] << endl;
  return 0;
}

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Podstawy C++ · Zaloguj się, aby zapisać postęp na koncie.