华为机试HJ73:计算日期到天数转换

简介: 华为机试HJ73:计算日期到天数转换

题目描述:

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

输入描述:

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

输出描述:

输出是这一年的第几天

示例:

输入:

2012 12 31

输出:

366

解题思路:

本题是个数学问题,也是生活题。闰年要满足两个条件,年份可以被4整除,且不被100整除。首先用year判断是否为闰年;其次,建立闰年的月份天数表和非闰年的月份天数表;根据当前月份,累加其前n-1个月的完整天数,再加上当月的天数,完毕。

测试代码:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
    int year,month,day;
    while(cin>>year>>month>>day)
    {
        bool flag=(year%4==0&&year%100!=0)?true:false;
        vector<int> months1={31,28,31,30,31,30,31,31,30,31,30,31};     // 非闰年
        vector<int> months2={31,29,31,30,31,30,31,31,30,31,30,31};     // 闰年
        int sum=0;
        for(int i=0;i<(month-1);++i)
        {
            if(flag)
            {
                sum+=months2[i];
            }
            else{
                sum+=months1[i];
            }
        }
        sum+=day;
        cout<<sum<<endl;
    }
    return 0;
}


相关文章
|
2天前
31.假定2007年的一月一日是星期一,输入一个时间(包含年、月、日),求出它是星期几。
31.假定2007年的一月一日是星期一,输入一个时间(包含年、月、日),求出它是星期几。
11 0
|
4天前
计算某年某月的天数
计算某年某月的天数
20 0
|
4天前
|
索引
每日一题吼吼吼(打印从1到最大n位数,计算是第几天)
每日一题吼吼吼(打印从1到最大n位数,计算是第几天)
12 0
|
4天前
|
Linux C++ iOS开发
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
49 0
|
9月前
计算日期到天数转换
计算日期到天数转换
56 0
|
10月前
牛客网刷题—— 计算日期到天数转换
牛客网刷题—— 计算日期到天数转换
|
11月前
|
Python
输入年月日判断是本年的第多少天
输入年月日判断是本年的第多少天
123 0
每日一题——输入一个日期,输出它是该年的第几天
哈喽大家好,我是保护小周ღ,本期为大家带来的是编程实现输入某年某月某日,输出它是这一年的第几天,一起来看看把~
197 0
BC54 获得月份天数题解
KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。
BC54 获得月份天数题解