1290日期差值

1290日期差值题目地址

有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天输入输出格式
输入描述:
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
输出描述:
每组数据输出一行,即日期差值
输入样例#:
复制
20110412
20110422
输出样例#:
复制
11

思路分析:根据输入的数字首先要把年月日给确定下来,这里用到了取模和除法运算(很经典)。然后为了方便起见,把前面的那个时间始终保持是较小值。然后对于d1进行累加,中间有两个变化的过程。一个是d1大于某月天数时需要置为1,月份累加1,而当月份累加超过12时,月份置为1,年加一。这样循环,直至赶上第二个较大的日期。则计数器cnt存的值就是两个日期相隔的天数。

本题考察了:数位分解、闰年判断、标记及复位等,是一道不错的考题。

代码:

#include<iostream>
#include <string>
using namespace std;

void reverse_num(int a,int b)
{
    if(a>b)
    {
        int t=a;
        a=b;
        b=t;
    }
}
bool is_leapYear(int n)
{
    if((n%400==0)||(n%100!=0)&&(n%4==0))
        return 1;
    else
        return 0;
}
int main()
{
    int M[2][13]= {{0,31,28,31,30,31,30,31,31,30,31,30,31},
        {0,31,29,31,30,31,30,31,31,30,31,30,31}
    };
    int n1,n2,cnt=1;
    while(cin>>n1)
    {
        cin>>n2;
        reverse_num(n1,n2);
        int y1=n1/10000,m1=n1%10000/100,d1=n1%100;
        int y2=n2/10000,m2=n2%10000/100,d2=n2%100;
        int n1=0,n2=0;
        while(!(y1==y2&&m1==m2&&d1==d2))
        {
            int flag=0;
            if(is_leapYear(y1))
                flag=1;
            else
                flag=0;
            d1++;
            cnt++;
            if(d1>M[flag][m1])
            {
                d1=1;
                m1++;
                if(m1>12)
                {
                    m1=1;
                    y1++;
                }
            }
        }
        cout<<cnt<<endl;
    }

    return 0;
}

MYSQL8日期函数包括获取时间戳、获取当前日期、获取当前的时分秒、获取当前年月日时分秒、从日期字符串中获取年月日、获取日期之间的差值、获取时间的差值(秒级)、日期格式化、将字符串转为日期、将日期进行减法、将日期进行加法、从日期中获取指定字段、获取指定日期所在月的最后一天、获取指定年份和天数的日期、根据日期获取信息等。这些函数可以用来处理和操作日期和时间数据。你可以根据需要选择合适的函数来满足你的需求。你可以查看MYSQL8的官方文档或者参考一些专业的教程来了解具体的使用方法和示例。希望这些信息对你有帮助。如果你需要更多的信息,可以参考这个链接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MYSQL8日期函数](https://blog.csdn.net/omaidb/article/details/130103955)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [MySQL(8)常见数学函数和日期函数](https://blog.csdn.net/qq_44870115/article/details/119257584)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值