//what's the date after XX days
#include <iostream>
using namespace std;
int fill(int&,int&,int&,int&);
void calculate(int&,int&,int&,int&);
void show(int,int,int);
int leap_year(int);
int main()
{
int year,month,day,num;
num=fill(year,month,day,num);
calculate(year,month,day,num);
show(year,month,day);
return 0;//dd
}
int fill(int& year,int& month,int& day,int& num)
{
cout<<"Please enter the date commenced(year,month,date)\n";
cin>>year;
cin>>month;
cin>>day;
cout<<"Enter the following days.\n";
cin>>num;
return num;
}
void calculate(int& year,int& month,int& day,int& num)
{
num=day+num;//from the first day of a month
int Months[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};
if(leap_year(year))
Months[2]=29;
else
Months[2]=28;
for(int i=month;i<=13;i++)
{
if(month==13)
{
{
i=1;
month=1;
year=year+1;
}
if(leap_year(year))
Months[2]=29;
else
Months[2]=28;
}
if(num<=Months[i])
{
day=num;
month=i;
break;
}
else
num=num-Months[i];
}
}
void show(int year,int month,int day)
{
cout<<year<<"-"<<month<<"-"<<day;
}
int leap_year(int year)
{
if((year%100!=0&&year%4==0)||(year%400==0))
return 1;
else
return 0;
}
输入一个日期,以及天数,你将会得到相隔若干天后的日期,由于第一次写这么复杂的程序,程序属于办写半抄,没有过多的考虑非法输入的问题以及输入输出一致性,后续改进。
这个程序主要是因为我妈去投资理财,而我不知道到期日想要计算到期日。。于是就写了,但愿有用= =