#include<iostream>
#include<cmath>
using namespace std;
int sum;
class Date
{
private:
int day,month,year,hour,minute,second;
void IncDay();
int DayCalc();
public:
Date(int y=1900,int n=1,int d=1);
void SetDate(int yy,int mm,int dd);
void Settime(int a=1,int b=1,int c=1);
bool IsLeapYear();
bool IsEndofMonth();
void print_ymdhsm();
void print_mdy();
void AddDay(int );
int Daysof2Date(Date ymd);
void plussecond(int w);
#include<cmath>
using namespace std;
int sum;
class Date
{
private:
int day,month,year,hour,minute,second;
void IncDay();
int DayCalc();
public:
Date(int y=1900,int n=1,int d=1);
void SetDate(int yy,int mm,int dd);
void Settime(int a=1,int b=1,int c=1);
bool IsLeapYear();
bool IsEndofMonth();
void print_ymdhsm();
void print_mdy();
void AddDay(int );
int Daysof2Date(Date ymd);
void plussecond(int w);
};
void Date::Settime(int a,int b,int c)
{
hour=a;
minute=b;
second=c;
}
Date::Date(int y,int m,int d)
{
SetDate(y,m,d);
}
void Date::SetDate(int yy,int mm,int dd)
{
month=(mm>=1&&mm<=12)?mm:1;
year=(yy>=1900&&yy<=2100)?yy:1900;
switch(month)
{
case 4:
case 6:
case 9:
case 10:
case 11:
day=(dd>=1&&dd<=30)?dd:1;break;
case 2:
if(IsLeapYear())
day=(dd>=1&&dd<=29)?dd:1;
else
day=(dd>=1&&dd<=28)?dd:1;
break;
default:
day=(dd>=1&&dd<=31)?dd:1;
}
}
void Date::AddDay(int days)
{
for(int i=0;i<days;i++)
{
IncDay();
}
}
bool Date::IsLeapYear()
{
if(year%400==0||(year%100!=0&&year%4==0))
return true;
else
return false;
}
bool Date::IsEndofMonth()
{
switch(month)
{
case 4:
case 6:
case 9:
case 11:return day==30;
case 2:
if(IsLeapYear())
return day==29;
else
return day==28;
default: return day==31;
}
}
void Date::IncDay()
{
if(IsEndofMonth())
if(month==12)
{
day=1;
month=1;
year++;
}
else
{
day=1;
month++;
}
else day++;
}
void Date::print_ymdhsm()
{
cout<<year<<" "<<month<<" "<<day<<" "<<hour<<" "<<second<<" "<<minute<<endl;
}
int Date::DayCalc()
{
int days;
int yy=year-1900;
days=yy*365;
if(yy)
days+=(yy-1)/4;
switch(month)
{
case 12:days+=30;
case 11: days+=31;
case 10: days+=30;
case 9: days+=31;
case 8:days+=31;
case 7:days+=30;
case 6:days+=31;
case 5:days+=30;
case 4:days+=31;
case 3:if(IsLeapYear())
days+=29;
case 2:days+=31;
default:break;
}
days+=day;
return days;
}
int Date::Daysof2Date(Date ymd)
{
int days;
days=abs(DayCalc()-ymd.DayCalc());
return days;
}
void Date::plussecond(int w)
{
second+=w;
minute+=second/60;
second=second%60;
hour+=minute/60;
minute=minute%60;
AddDay(hour/24);
hour=hour%24;
}
int main()
{
Date date1;
date1.SetDate(2006,4,8);
date1.Settime(1,1,1);
int h,m,s;
cin>>h>>m>>s;
sum=h*3600+m*60+s;
date1.plussecond(sum);
cout<<endl;
date1.print_ymdhsm();
cout<<endl;
return 0;
}
void Date::Settime(int a,int b,int c)
{
hour=a;
minute=b;
second=c;
}
Date::Date(int y,int m,int d)
{
SetDate(y,m,d);
}
void Date::SetDate(int yy,int mm,int dd)
{
month=(mm>=1&&mm<=12)?mm:1;
year=(yy>=1900&&yy<=2100)?yy:1900;
switch(month)
{
case 4:
case 6:
case 9:
case 10:
case 11:
day=(dd>=1&&dd<=30)?dd:1;break;
case 2:
if(IsLeapYear())
day=(dd>=1&&dd<=29)?dd:1;
else
day=(dd>=1&&dd<=28)?dd:1;
break;
default:
day=(dd>=1&&dd<=31)?dd:1;
}
}
void Date::AddDay(int days)
{
for(int i=0;i<days;i++)
{
IncDay();
}
}
bool Date::IsLeapYear()
{
if(year%400==0||(year%100!=0&&year%4==0))
return true;
else
return false;
}
bool Date::IsEndofMonth()
{
switch(month)
{
case 4:
case 6:
case 9:
case 11:return day==30;
case 2:
if(IsLeapYear())
return day==29;
else
return day==28;
default: return day==31;
}
}
void Date::IncDay()
{
if(IsEndofMonth())
if(month==12)
{
day=1;
month=1;
year++;
}
else
{
day=1;
month++;
}
else day++;
}
void Date::print_ymdhsm()
{
cout<<year<<" "<<month<<" "<<day<<" "<<hour<<" "<<second<<" "<<minute<<endl;
}
int Date::DayCalc()
{
int days;
int yy=year-1900;
days=yy*365;
if(yy)
days+=(yy-1)/4;
switch(month)
{
case 12:days+=30;
case 11: days+=31;
case 10: days+=30;
case 9: days+=31;
case 8:days+=31;
case 7:days+=30;
case 6:days+=31;
case 5:days+=30;
case 4:days+=31;
case 3:if(IsLeapYear())
days+=29;
case 2:days+=31;
default:break;
}
days+=day;
return days;
}
int Date::Daysof2Date(Date ymd)
{
int days;
days=abs(DayCalc()-ymd.DayCalc());
return days;
}
void Date::plussecond(int w)
{
second+=w;
minute+=second/60;
second=second%60;
hour+=minute/60;
minute=minute%60;
AddDay(hour/24);
hour=hour%24;
}
int main()
{
Date date1;
date1.SetDate(2006,4,8);
date1.Settime(1,1,1);
int h,m,s;
cin>>h>>m>>s;
sum=h*3600+m*60+s;
date1.plussecond(sum);
cout<<endl;
date1.print_ymdhsm();
cout<<endl;
return 0;
}