编写程序,定义一个结构Date,包含年、月、日三个整型。
计算该日期是该年的第几天并输出
#include<iostream>
using namespace std;
int getDays(int year, int month, int day) {
int days_of_month[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };//一月份加的天数为0
//判断平年闰年,平年二月28天,闰年多一天
if ((year % 4 == 0) && (year & 100 != 0) || (year % 400 == 0)) {
days_of_month[2] = 29;
}
else {
days_of_month[2] = 28;
}
//参数有效性检查
if (month < 1 || month>12 || day<0 || day>days_of_month[month]) {
return -1;
}
int Days=0;
for (int i = 0; i < month; i++) {//不能int i=1,这样在一月时也会进行一次循环
Days += days_of_month[i];
}
Days += day; //加上当月的天数
return Days;
}
int main(int argc, char *argv[]) {
int y,m,d;
cin>>y>>m>>d;
if(y<=0||m<=0||d<=0||m>12||d>12)
{
cout<<0;
}
else{
cout << getDays(y,m,d);
getchar();
}
return 0;
}