谭浩强C++课后习题22——计算日期

谭浩强C++课后习题22——计算日期

题目描述:给出年,月,日,计算该日是该年的第几天。

算法思路:用一个数组存储每个月的天数,for循环遍历之前的每个月将其数与这个月的天数相加,如果该年是闰年且月数大于二月,则天数需要加一,判断闰年的方法:如果该年能同时被4和100整除,或者能被400整除,则该年是闰年。

#include<iostream>
using namespace std;
bool leap(int year) {
	if ((year % 4 == 0 && year % 100 == 0) || (year % 400 == 0)) {
		return true;
	}
	else
		return false;
}
int sum_day(int year, int month, int day) {
	int days[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	for (int i = 0;i < month - 1;i++)
		day += days[i];
	if (leap(year) && year >= 3)
		day++;
	return day;
}
int main() {
	int year, month, day;
	cout << "输入年,月,日:";
	cin >> year >> month >> day;
	cout << "这是第" << sum_day(year, month, day) << "天" << endl;
	return 0;
}

运行测试结果:
在这里插入图片描述

发布了35 篇原创文章 · 获赞 35 · 访问量 589

猜你喜欢

转载自blog.csdn.net/weixin_45295612/article/details/105267522