定义一个结构体类型Date,可以表示年、月、日。输入年、月、日,计算并输出该日在本年中是第几天。注意闰

C++
注意闰年

#include <iostream>
using namespace std;

struct Date
{
int year;
int month;
int day;
};

int isLeapyear(Date d)
{
if((d.year%400==0) || (d.year%100!=0) && (d.year%4==0))
return 1;
else
return 0;
}

int monthDay(Date d)
{
switch(d.month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: return 31;
case 2:
if(isLeapyear(d))
return 29;
else
return 28;
case 4:
case 6:
case 9:
case 11: return 30;
default: return 0;
}
}

int timeDay(Date d)
{
int td = 0;
Date temp = d;
for(int i = 1; i < d.month; i++)
{
temp.month = i;
td += monthDay(temp);
}
td += temp.day;
return td;
}

void main()
{
Date date;
cout << "请输入年:";
cin >> date.year;
cout << "请输入月:";
cin >> date.month;
cout << "请输入日:";
cin >> date.day;
cout << "该日在本年中是第" << timeDay(date) << "天" << endl;
}
温馨提示:答案为网友推荐,仅供参考
相似回答