//Thanks for coming
#include <iostream>
using namespace std;
class NumDays{
int hours;
float day;
public:
NumDays()
{
hours=0;
day=0.0;
};
NumDays(int h)
{
hours=h;
day=float(h/8.0);
};
int getHour()
{
return hours;
}
float getDay()
{
return day;
}
NumDays operator +(NumDays obj)
{
int h=getHour()+obj.getHour();
NumDays temp(h);
return temp;
}
NumDays operator -(NumDays obj)
{
int h=getHour()-obj.getHour();
NumDays temp(h);
return temp;
}
const NumDays& operator++() //prefix
{
++hours;
day=float(hours/8.0);
return *this;
}
const NumDays& operator--() //prefix
{
--hours;
day=float(hours/8.0);
return *this;
}
const NumDays operator++(int) //postfix
{
NumDays temp(*this);
++hours;
day=float(hours/8.0);
return temp;
}
const NumDays operator--(int) //postfix
{
NumDays temp(*this);
--hours;
day=float(hours/8.0);
return temp;
}
};
int main()
{
NumDays obj(2),obj2(10),obj3,obj4;
cout<<"obj:=>Day:"<<obj.getDay()<<"##Hour:"<<obj.getHour()<<"\n";
cout<<"obj2:=>Day:"<<obj2.getDay()<<"##Hour:"<<obj2.getHour()<<"\n\n";
obj3=obj2-obj;
cout<<"'obj3=obj2-obj'=> Day:"<<obj3.getDay()<<"##Hour:"<<obj3.getHour()<<"\n";
obj3=obj+obj2;
cout<<"'obj3=obj+obj2'=> Day:"<<obj3.getDay()<<"##Hour:"<<obj3.getHour()<<"\n";
obj4=obj3++;
cout<<"'obj4=obj3++' => Day:"<<obj4.getDay()<<"##Hour:"<<obj4.getHour()<<"\n";
obj4=++obj3;
cout<<"'obj4=++obj3' => Day:"<<obj4.getDay()<<"##Hour:"<<obj4.getHour()<<"\n";
obj4=obj3--;
cout<<"'obj4=obj3--' => Day:"<<obj4.getDay()<<"##Hour:"<<obj4.getHour()<<"\n";
obj4=--obj3;
cout<<"'obj4=--obj3' => Day:"<<obj4.getDay()<<"##Hour:"<<obj4.getHour()<<"\n";
};
Ly9UaGFua3MgZm9yIGNvbWluZwojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIE51bURheXN7CmludCBob3VyczsKZmxvYXQgZGF5OwpwdWJsaWM6CgpOdW1EYXlzKCkKewoJaG91cnM9MDsKCWRheT0wLjA7Cn07CgpOdW1EYXlzKGludCBoKQp7Cglob3Vycz1oOwoJZGF5PWZsb2F0KGgvOC4wKTsKfTsKCmludCBnZXRIb3VyKCkKewoJcmV0dXJuIGhvdXJzOwp9CgpmbG9hdCBnZXREYXkoKQp7CglyZXR1cm4gZGF5Owp9CgpOdW1EYXlzIG9wZXJhdG9yICsoTnVtRGF5cyBvYmopCnsKCWludCBoPWdldEhvdXIoKStvYmouZ2V0SG91cigpOwoJTnVtRGF5cyB0ZW1wKGgpOwoJcmV0dXJuIHRlbXA7Cn0KCk51bURheXMgb3BlcmF0b3IgLShOdW1EYXlzIG9iaikKewoJaW50IGg9Z2V0SG91cigpLW9iai5nZXRIb3VyKCk7CglOdW1EYXlzIHRlbXAoaCk7CglyZXR1cm4gdGVtcDsKfQoKCgpjb25zdCBOdW1EYXlzJiBvcGVyYXRvcisrKCkgLy9wcmVmaXgKewogICAgICAgKytob3VyczsKICAgICAgIGRheT1mbG9hdChob3Vycy84LjApOwogICAgICAgcmV0dXJuICp0aGlzOwp9CmNvbnN0IE51bURheXMmIG9wZXJhdG9yLS0oKSAvL3ByZWZpeAp7CiAgICAgICAtLWhvdXJzOwogICAgICAgZGF5PWZsb2F0KGhvdXJzLzguMCk7CiAgICAgICByZXR1cm4gKnRoaXM7Cn0KCgpjb25zdCBOdW1EYXlzIG9wZXJhdG9yKysoaW50KSAvL3Bvc3RmaXgKewogICBOdW1EYXlzIHRlbXAoKnRoaXMpOwogICAgICAgKytob3VyczsKICAgICAgZGF5PWZsb2F0KGhvdXJzLzguMCk7CiAgICAgICByZXR1cm4gdGVtcDsKfQpjb25zdCBOdW1EYXlzIG9wZXJhdG9yLS0oaW50KSAvL3Bvc3RmaXgKewogICBOdW1EYXlzIHRlbXAoKnRoaXMpOwogICAgICAgLS1ob3VyczsKICAgICAgZGF5PWZsb2F0KGhvdXJzLzguMCk7CiAgICAgICByZXR1cm4gdGVtcDsKfQoKfTsKCgppbnQgbWFpbigpCnsKTnVtRGF5cyBvYmooMiksb2JqMigxMCksb2JqMyxvYmo0Owpjb3V0PDwib2JqOj0+RGF5OiI8PG9iai5nZXREYXkoKTw8IiMjSG91cjoiPDxvYmouZ2V0SG91cigpPDwiXG4iOwpjb3V0PDwib2JqMjo9PkRheToiPDxvYmoyLmdldERheSgpPDwiIyNIb3VyOiI8PG9iajIuZ2V0SG91cigpPDwiXG5cbiI7Cm9iajM9b2JqMi1vYmo7CmNvdXQ8PCInb2JqMz1vYmoyLW9iaic9PiBEYXk6Ijw8b2JqMy5nZXREYXkoKTw8IiMjSG91cjoiPDxvYmozLmdldEhvdXIoKTw8IlxuIjsKb2JqMz1vYmorb2JqMjsKY291dDw8IidvYmozPW9iaitvYmoyJz0+IERheToiPDxvYmozLmdldERheSgpPDwiIyNIb3VyOiI8PG9iajMuZ2V0SG91cigpPDwiXG4iOwpvYmo0PW9iajMrKzsKY291dDw8IidvYmo0PW9iajMrKycgPT4gRGF5OiI8PG9iajQuZ2V0RGF5KCk8PCIjI0hvdXI6Ijw8b2JqNC5nZXRIb3VyKCk8PCJcbiI7Cm9iajQ9KytvYmozOwpjb3V0PDwiJ29iajQ9KytvYmozJyA9PiBEYXk6Ijw8b2JqNC5nZXREYXkoKTw8IiMjSG91cjoiPDxvYmo0LmdldEhvdXIoKTw8IlxuIjsKb2JqND1vYmozLS07CmNvdXQ8PCInb2JqND1vYmozLS0nID0+IERheToiPDxvYmo0LmdldERheSgpPDwiIyNIb3VyOiI8PG9iajQuZ2V0SG91cigpPDwiXG4iOwpvYmo0PS0tb2JqMzsKY291dDw8IidvYmo0PS0tb2JqMycgPT4gRGF5OiI8PG9iajQuZ2V0RGF5KCk8PCIjI0hvdXI6Ijw8b2JqNC5nZXRIb3VyKCk8PCJcbiI7Cgp9Ow==