#include <iostream>
#include <stdio.h>

using namespace std;

class CData
{
public:
	int dzien;
	int miesiac;
	int rok;
	CData(int d, int m, int r);		// Konstruktor
	string DataTekstowo();
	int DzienRoku();
	static bool CzyRokPrzestepny(int rok);
};

CData::CData(int d, int m, int r)
{
	dzien = d;
	miesiac = m;
	rok = r;
}

string CData::DataTekstowo()
{
	char data[12];
	sprintf(data, "%04d-%02d-%02d", rok, miesiac, dzien);
	string wynik(data);
	return wynik;
}

int CData::DzienRoku()
{
	int wynik = 0;
	for(int i=1; i<miesiac; i++)
		switch(i)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				wynik += 31;
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				wynik += 30;
				break;
			case 2:
				wynik += CzyRokPrzestepny(rok) ? 29 : 28;
				break;
		}
	wynik += dzien;
	return wynik;
}

bool CData::CzyRokPrzestepny(int rok)
{
	return rok%4==0 && (rok%100!=0 || rok%400==0) ? true : false;
}


int main()
{
	CData data1(1, 1, 2022);
    cout << data1.DataTekstowo() << " " << data1.DzienRoku() << endl;
	CData data2(31, 1, 2022);
    cout << data2.DataTekstowo() << " " << data2.DzienRoku() << endl;
	CData data3(31, 3, 2022);
    cout << data3.DataTekstowo() << " " << data3.DzienRoku() << endl;
	CData data4(31, 3, 2016);
    cout << data4.DataTekstowo() << " " << data4.DzienRoku() << endl;
    cout << 2000 << " " << CData::CzyRokPrzestepny(2000) << endl;
    return 0;
}
