计算日期到天数转换【编程题】

原创 2017年01月03日 10:02:18

题目

描述

根据输入的日期,计算是这一年的第几天。。
详细描述:
输入某年某月某日,判断这一天是这一年的第几天?。

输入

输入三行,分别是年,月,日

输出

成功:返回outDay
输出计算后的第几天;
失败:返回-1

样例输入

2016 12 31

样例输出

366

思路

是先建立一个数组保存每月累计的日子,判断是否是闰年,然后加1

代码

#include <iostream>
using namespace std;

bool loopyear(int year)    //判断是否是闰年
{
    if((year%4==0&&year%100!=0)||year%400==0)
    {
        return 1;
    }
    else
    {
        return 0;
    }

}
bool checkDay(int month, int day)//检查输入的合法性
{
    int a[13]= {0,31,59,90,120,151,181,212,243,273,304,334,365};
    if(day>0&&day<=(a[month]-a[month-1]))
    {
        return true;
    }
    return false;
}

int getOutDay(int year, int month, int day)
{
    int sum=0;
    int a[12]= {0,31,59,90,120,151,181,212,243,273,304,334};
    bool isDayOk=checkDay(month,day);
    if (loopyear(year)&&month>2&&isDayOk)//如果是闰年且月份大于2
    {
        sum=a[month-1]+day+1;
    }
    else if(isDayOk)
    {
        sum=a[month-1]+day;
    }
    else
    {
        sum=-1;
    }
    return sum;
}

int main()
{
    int year,month,day;
    cin>>year;
    cin>>month;
    cin>>day;
    cout<<getOutDay(year,month,day);
    return 0;
}
版权声明:本文为博主原创文章,欢迎转载,分享是一种态度。

第二周编程题-时间换算

题:时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。...

C语言编程题,给定一个日期,输出这个日期是该年的第几天

/** C语言编程题 给定一个日期,输出这个日期是该年的第几天 */ int getIndexOfDay(int year, int month, int day) { int m...

华为OJ——计算日期到天数转换

题目描述 根据输入的日期,计算是这一年的第几天。。 详细描述: 输入某年某月某日,判断这一天是这一年的第几天?。 输入描述: 输入三行,分别是年,月,日 输出描...

日期天数计算

  • 2014年12月03日 14:24
  • 881KB
  • 下载

Java8 学习之计算日期相差天数

昨天在公司遇到一个小问题,需要计算两个日期之间相差的天数,于是首先想到的就是老API中的写法:后来觉得都有java8 还这样用是不是有点out了,于是就去翻time包中的方法,看到一个方法,这个方法是...
  • gj_sun
  • gj_sun
  • 2016年11月26日 17:33
  • 2827

计算两个人的出生日期相差的天数

/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: fibnacci.cpp * 作 ...

计算两个日期相隔的天数

  • 2014年12月23日 21:49
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算日期到天数转换【编程题】
举报原因:
原因补充:

(最多只允许输入30个字)