#include <iostream.h>

#include <conio.h>

 

class datum

 {

  int ho, nap, ev;

  public:

  void set(int,int,int);

  void get(int&,int&,int&);

  void next();

  void display();

 };

 

void datum::set(int ho1, int nap1, int ev1)

{

 cout<<"Kerem az evet (negyjegyu): "; cin>>ev1;

 cout<<"Kerem a honapot: "; cin>>ho1;

 cout<<"Kerem a napot: "; cin>>nap1;

 ho=ho1; nap=nap1; ev=ev1;

}

 

void datum::get(int &x, int &y, int &z)

{

 x=ho; y=nap; z=ev;

}

 

void datum::next()

{

 int zz;

 switch (ho)

  {

   case 1:

   case 3:

   case 5:

   case 7:

   case 8:

   case 10:

   case 12: zz=31; break;

   case 2: {zz=28; if(ev%4==0) zz++;} break;    //hianyzott egy kapcsos zarojel

   case 4:

   case 6:

   case 9:

   case 11: zz=30; break;

   default: zz=0;

  }

 if ((zz!=0) && ((nap<0)||(nap>zz))) zz=-1;  //rossz volt a feltetel

 switch(zz)

 {

  case 0: cout<<"hibas honap"; break;

  case -1: cout<<"hibas nap"; break;

  default:

   {

      if (nap+1>zz)

       if (ho==12) {ev++; ho=1; nap=1;} else {ho++; nap=1;}

      else nap++;

      display(); break;

   }

 }

}

 

void datum::display(void)

{

 cout<<"Holnapi datum: "<<ev<<". "<<ho<<". "<<nap<<". "<<endl;

}

 

void main(void)

{

 clrscr();

 datum ma;

 int a, b, c;

 ma.set(a,b,c);

 ma.get(a,b,c);

 ma.next();

 getch();

}