//輸入一個日期計算並輸出這天是今年的第幾天
阿新 • • 發佈:2019-01-31
#include<iostream>
using namespace std;
bool fun1(int y);//判斷是否是瑞年
int mouth(int m);//返回各月天數
int y,m,d; //全域性變數年-月-日
int main()//主函式
{
bool primer;
bool fun2();//輸入並判斷日期格式是否正確
void sum(int m,int d);//計算並輸出這天是今年的第幾天
primer=fun2();
while(!primer)//while迴圈輸入
{
cout<<"輸入有誤請重新輸入:";
primer=fun2();
};
sum(m,d);//呼叫入口
return 0;
}
//判斷是否是瑞年
bool fun1(int y)
{
if((y%4==0)&&(y%100!=0)||(y%400==0))
return true;
return false;
}
//輸入並判斷日期格式是否正確
bool fun2()
{
cout<<"請輸入日期:(格式:year-mouth-day)";
cin>>y>>m>>d;
if((y<0)||(m<0)||(m>12)||(d>mouth(m))) return false;
return true;
}
//返回各月天數
int mouth(int m)
{
if((m==4)||(m==6)||(m==9)||(m==11)) return 30;
if((m==2)&&(fun1(y))) return 28;
if((m==2)&&(!fun1(y))) return 29;
return 31;
}
//計算並輸出這天是今年的第幾天
void sum(int m,int d)
{ int sum=0;
for(int i=1;i<m;i++)
sum+=mouth(i);
sum+=d;
cout<<"這天是今年的第:'"<<sum<<"'天"<<endl;
}
using namespace std;
bool fun1(int y);//判斷是否是瑞年
int mouth(int m);//返回各月天數
int y,m,d; //全域性變數年-月-日
int main()//主函式
{
bool primer;
bool fun2();//輸入並判斷日期格式是否正確
void sum(int m,int d);//計算並輸出這天是今年的第幾天
primer=fun2();
while(!primer)//while迴圈輸入
{
cout<<"輸入有誤請重新輸入:";
primer=fun2();
};
sum(m,d);//呼叫入口
return 0;
}
//判斷是否是瑞年
bool fun1(int y)
{
if((y%4==0)&&(y%100!=0)||(y%400==0))
return true;
return false;
}
//輸入並判斷日期格式是否正確
bool fun2()
{
cout<<"請輸入日期:(格式:year-mouth-day)";
cin>>y>>m>>d;
if((y<0)||(m<0)||(m>12)||(d>mouth(m))) return false;
return true;
}
//返回各月天數
int mouth(int m)
{
if((m==4)||(m==6)||(m==9)||(m==11)) return 30;
if((m==2)&&(fun1(y))) return 28;
if((m==2)&&(!fun1(y))) return 29;
return 31;
}
//計算並輸出這天是今年的第幾天
void sum(int m,int d)
{ int sum=0;
for(int i=1;i<m;i++)
sum+=mouth(i);
sum+=d;
cout<<"這天是今年的第:'"<<sum<<"'天"<<endl;
}