ループを用いてyear、month、dayが等しくなるまでループしその回数を差分として出力したいです。
なのですが通してもメンバ関数subの中身がうまくかけず困っています。
お力を貸してください。
#include<iostream>
using namespace std;
class Date{
private:
int year;
int month;
int day;
int i;
public:
Date(int y, int m, int d){
year=y;
month=m;
day=d;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day>31){
year=month=day=0;
}
break;
case 4:
case 6:
case 9:
case 11:
if(day>30){
year=month=day=0;
}
break;
case 2:
if(day>28){
year=month=day=0;
}
break;
default:
year=month=day=0;
break;
}
}
void next(){
day=day+1;
do{
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day>31){ day=day-31;
month=month+1;
}
if(month==13){
month=month-12;
year=year+1;
}
break;
case 4:
case 6:
case 9:
case 11:
if(day>30){
day=day-30;
month=month+1;
}
break;
case 2:
if(day>28){
day=day-28;
month=month+1;
}
break;
default:
break;
}
}while(day>=32);
}
void get(int &y, int &m, int &d){
y=year;
m=month;
d=day;
}
int sub(Date d){
}
};
int main()
{
int y[] = {2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014};
int m[] = {8, 9, 1, 2, 1, 12, 2, 2};
int d[] = {31, 1, 1, 28, 1, 31, 28, 28};
int yy, mm, dd;
for (int i = 0; i < sizeof(y) / sizeof(int); i+=2) {
Date d1(y[i], m[i], d[i]);
Date d2(y[i+1], m[i+1], d[i+1]);
d1.get(yy, mm, dd);
cout << yy << "年" << mm << "月" << dd << "日から";
d2.get(yy, mm, dd);
cout << yy << "年" << mm << "月" << dd << "日までは";
cout << d2.sub(d1) << "日です" << endl;
}
return 0;
}