C++程序设计 谭浩强第三版
第七章第一题
该程序设置两个结构体,一个用于储存输入的年份月份以及日期,另一个则用于把存储每个月的天数,保存闰年,其他年份则减一即可,具体程序设计如下。
#include<iostream>
#include<string>
using namespace std;
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()
{//首先判断是否为闰年,如果是2月为29天,否则为28天。
typedef int years, tianshu;
years nianfen = date.year;
tianshu n = 0;
cout << "请输入年月日!" << endl;
cin >> date.year>>date.month>>date.day;
for (int j = 1; j <= 12; j++)
{
if (date.month == j)
{
if (date.day <= days.month[j])
{
if (nianfen % 4 == 0)
{
for (int i = 0; i < date.month; i++)
{
n = n + days.month[i] ;
}
n = n + date.day;
//得到闰年时的天数;
}
if (nianfen % 4 != 0)
{
for (int i = 0; i < date.month; i++)
{
if (i == 2)
{
n = n + days.month[i]-1;
}
n = n + days.month[i];
}
n = n + date.day;
//得到闰年时的天数;
}
printf("%d年%d月%d日是该年的第%d天", date.year, date.month, date.day, n);
}
else
cout << "输出错误,请确认日期!" << endl; break;
}
}
}