本文主要是介绍练习题——【学习补档】计算日期到天数转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述
根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。
进阶:时间复杂度:O(n) ,
空间复杂度:O(1)
输入描述:
输入一行,每行空格分割,分别是年,月,日
输出描述:
输出是这一年的第几天
示例1
输入:
2012 12 31
输出:
366
示例2
输入:
1982 3 4
输出:
63
问题分析
该问题就是数天数。😁
解决方案
我们只需要算出输入的日期距年初总共多少天即可。
代码
#include <iostream>
using namespace std;int GetMonthDay(int year, int month)
{const static int day_arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };if (month == 2&& (year % 4 == 0 && year % 100 != 0 || (year % 400 == 0))){return 29;}return day_arr[month];
}int main()
{int year, month, day;cin >> year >> month >> day;while (month != 1){day += GetMonthDay(year, month - 1);month--;}cout << day;
}
这篇关于练习题——【学习补档】计算日期到天数转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!