某一日期加上若干天數後的日期

//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;
}

輸入一個日期,以及天數,你將會得到相隔若干天后的日期,由於第一次寫這麼複雜的程序,程序屬於辦寫半抄,沒有過多的考慮非法輸入的問題以及輸入輸出一致性,後續改進。

這個程序主要是因爲我媽去投資理財,而我不知道到期日想要計算到期日。。於是就寫了,但願有用= =

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章