满意答案
EVYloveGd
.03.24
采纳率:46%等级:12
已帮助:8266人
#include
using namespace std;
bool isLeapYear(int y); //声明
bool inputRight(int y, int m, int d); //声明
//定义日期结构体,包括年、月、日
struct
{
int year; //年
int month; //月
int day; //日
}date; //声明实体日期date
int main()
{
int i,days; //设输入日期在该年中为第days天
//每年12个月的天数存放在数组里,2月初始为平年
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
cout<
//输入年月日
cin>>date.year>>date.month>>date.day;
//判断输入是否正确,不正确则重新输入
while(!inputRight(date.year, date.month, date.day))
{
cout << "intput error!please input again:"<
cin>>date.year>>date.month>>date.day;
}
//初始化days
days=0;
//从第1个月到输入月数的前一个月累加天数
for (i=1;i
{
days+=day_tab[i];
}
//累加输入当月的天数
days+=date.day;
//判断闰年,如果是闰年,则多加一天
if (isLeapYear(date.year) && date.month>=3)
{
days+=1;
}
//输出结果
cout<
<
return 0;
}
//判断输入日期是否正确
bool inputRight(int y, int m, int d)
{
if(y<1 || m<1 || m>12 || d<1 || d>31)
{
return false;
}
if(m==4 || m==6 || m==9 || m==11)
{
if(d>30)
{
return false;
}
}
if(m==2)
{
if(isLeapYear(y))
{
if(d>29)
{
return false;
}
}
else
{
if(d>28)
{
return false;
}
}
}
return true;
}
//判断是否为闰年
bool isLeapYear(int y)
{
if(date.year%4==0 && date.year%100!=0 || date.year%400==0)
{
return true;
}
return false;
}
00分享举报