题解 | #计算日期到天数转换#

计算日期到天数转换

https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded

#include <iostream>
using namespace std;

//获取每个月的天数
static int Getmonth(int year, int month, int day) 
{
    static int GetMonth[13] = { -1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    //判断是不是闰年
    if ((month == 2) && ((year % 400 == 0) || ((year % 100 != 0 && year % 4 == 0))))
    {
        return 29;
    }
    return GetMonth[month];
}

int main() 
{
    int year;int month;int day;int sum=0;
    cin >> year >> month >> day;
    while (month >= 2) 
    {//2000,2,1//2100,4,2
        --month;
        sum+=Getmonth(year,month,day);
    }
    sum+=day;
    cout<<sum;
    return 0;
}

//主要函数分析
//Getmonth函数:
//这个函数是一个静态函数,它接受三个参数year、month和day,用于获取指定月份的天数。
//函数内部首先定义了一个静态数组GetMonth,用于存储每个月的天数,其中第一个元素为 - 1(占位,实际月份从 1 开始)。
//然后判断如果传入的月份是 2 月,并且满足闰年条件(能被 400 整除或者能被 4 整除但不能被 100 整除),则返回 29 天,否则返回对应月份在数组中的天数。
//main函数:
//首先定义了三个变量year、month和day以及一个用于累加天数的变量sum。
//从用户输入获取年、月、日的信息。
//然后通过一个循环,从当前输入的月份开始递减,每次调用Getmonth函数获取当前月份的天数,并累加到sum变量中。循环条//件是月份大于等于 2,这样可以确保遍历到 1 月份为止,从而累加了从 2 月(如果最初月份大于 2 则从更晚的月份开始)//到当前月份前一个月的所有天数。
//最后将输入的日期中的天数day加到sum中。
//输出sum的值,即从年初到给定日期的总天数

全部评论

相关推荐

爱看电影的杨桃allin春招:我感觉你在炫耀
点赞 评论 收藏
分享
10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务