本题和第一题类似,
#include<iostream>
#include<string>
using namespace std;
int tianshu1(int y,int m,int d);
struct Date {
int year;
int month;
int day;
};
Date date;
struct Day {
int month[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 };
};
Day days;
int main()
{
typedef int years, tianshu;
years nianfen = date.year;
tianshu n = 0;
cout << "请输入年月日!" << endl;
cin >> date.year >> date.month >> date.day;
n=tianshu1(date.year,date.month,date.day);
printf("%d年%d月%d日是该年的第%d天", date.year, date.month, date.day, n);
}
int tianshu1(int y,int m,int d)
{//首先判断是否为闰年,如果是2月为29天,否则为28天。
int n = 0;
for (int j = 1; j <= 12; j++)
{
if (j<=m)
{
if (d <= days.month[m])
{
if (y % 4 == 0)
{
for (int i = 0; i < m; i++)
{
n = n + days.month[i] ;
}
n = n + d;
//得到闰年时的天数;
}
if (y % 4 != 0)
{
for (int i = 0; i < m; i++)
{
if (i == 2)
{
n = n + days.month[i]-1;
}
n = n + days.month[i];
}
n = n + d;
//得到闰年时的天数;
}
break;
}
else
cout << "输出错误,请确认日期!" << endl; break;
}
}
return n;
}