#include <iostream>
using namespace std;

class datum{
private:
    int tag, monat, jahr;
public:
    datum(void)
    {
        tag=25; monat=4; jahr=2026;
    }
    datum(int t, int m, int j)
    {   
        tag=t; monat=m; jahr=j;
    }
    void operator++(void)
    {
        ++tag;
    }
    void operator--(void)
    {
        --tag;
    }
    void operator+=(int anzahl)
    {
        tag=tag+anzahl;
    }
    int operator*(void) // istfeiertag()
    {
        if(tag==24 &&monat==12) return 1;
        if(tag== 1 &&monat== 1) return 1;
        if(tag== 1 &&monat== 5) return 1;
        if(tag== 3 &&monat==10) return 1;
        return 0;  
    }
    int operator==(class datum datum2)
    {
        if(tag   == datum2.tag
        && monat == datum2.monat
        && jahr  == datum2.jahr ) 
           return 1;
        return 0;
    }
    class datum operator+(int anzahl)
              //tageplus
    {
        class datum ergebnis;
        ergebnis.tag  = tag+anzahl;
        ergebnis.monat= monat;
        ergebnis.jahr = jahr;
        return ergebnis;
    }
    void print(void)
    {
        cout << tag << "." << monat 
             << "." << jahr << endl;
    }
};
int main(void)
{
    datum d{1,1,2027};
    ++d; --d;
    if(*d != 0) 
        cout << "Feiertag" << endl;
    d.print();
    datum e;
    e+=3; // e.operator+=(3);
    e.print();
    if(d==e)   cout << "gleich\n";
    else       cout << "ungleich\n";
    //e=d.operator+(2);//e=d.tageplus(2);
    e=d+2;
    e.print();
    return 0;
}
