C++ 计算日期到天数转换(牛客网)

点击链接即可查看题目:计算日期到天数转换_牛客题霸_牛客网

一、 题目

描述

根据输入的日期,计算是这一年的第几天。

保证年份为4位数且日期合法。

进阶:时间复杂度:O(n) O(n) ,空间复杂度:O(1) O(1) 

输入描述:

输入一行,每行空格分割,分别是年,月,日

输出描述:

输出是这一年的第几天

示例1

输入:

2012 12 31

输出:

366

二、代码

#include 
using namespace std;
int GetMonthDay(int year, int month) 
{
	int day[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	if (month != 2)
		return day[month];
	else if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
	{
		return 29;
	}
	return 28;
}

int main() 
{
    int year,month,day;
    while (cin >> year >> month >> day) 
    { // 注意 while 处理多个 case
        int sum = day;
        while(--month > 0)
        {
            sum += GetMonthDay(year,month);
        }
        cout << sum << endl;
    }
}
// 64 位输出请用 printf("%lld")

你可能感兴趣的:(c++)