KY111 日期差值

news2025/1/20 3:54:19

1.题目:

 

2.分析:

1. 分别求出每一个日期与0000年0月1日距离的天数

2. 两个距离天数相减即可得到两个日期相差的天数

3.我的代码:

#include <iostream>
using namespace std;

class Date 
{
public:
    Date(int year = 1, int month = 1, int day = 1)
    : _year(year)
    , _month(month)
    , _day(day) {}


    // 获取天数
    inline int GetMonthDay(int year, int month) 
    {
        static int arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        if ((month == 2) && ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))))
        {
            return 29;
        }
        else 
        {
            return arr[month];
        }
    }

    bool IsSame(Date& date) 
    {
        return this->_year == date._year
            && this->_month == date._month
            && this->_day == date._day;
    }

    void Gap(int year, int month, int day)
    {
        int n = 1;
        Date date(year, month, day);
        while (IsSame(date) == false)
        {
            n++;
             _day++;
            while (_day > GetMonthDay(_year, _month))
            {
                _day -= GetMonthDay(_year, _month);
                ++_month;
                if (_month > 12)
                {
                    _month -= 12;
                    ++_year;
                }
            }
        }
        cout << n << endl;
    }
private:
    int _year;
    int _month;
    int _day;
};
int main() 
{
    int year1 = 0;
    int month1 = 0;
    int day1 = 0;
    int year2 = 0;
    int month2 = 0;
    int day2 = 0;
    char arr1[9];
    char arr2[9];
    cin >> arr1 >> arr2;
    sscanf(arr1,"%4d%2d%2d",&year1,&month1,&day1);//格式化读入
    sscanf(arr2,"%4d%2d%2d",&year2,&month2,&day2);
    Date date(year1, month1, day1);
    date.Gap(year2, month2, day2);
}

4.答案代码:

 #include <iostream>

  using namespace std;

  /*

  *思路:

  * 1. 分别求出每一个日期与0000年0月1日距离的天数

  * 2. 两个距离天数相减即可得到两个日期相差的天数

  */

  //平年从1月到n月的天数

  int mon[12]={0,31,59,90,120,151,181,212,243,273,304,334};

  //给出年月日,计算距离0000年0月1日的天数和

  

  int CountDay(int y,int m,int d)

  {

    // 计算0-y年的天数

    int yearDay = y*365+y/4-y/100+y/400;

    // 计算到0-m月的天数

    int monthDay = mon[m-1];

    

    if(m > 2 && ((y%4 == 0 && y%100 != 0) || y%400==0))

      monthDay += 1;

    

    return yearDay + monthDay + d;

  }

  

  int main()

  {

    int year1,month1,day1;

    scanf("%4d%2d%2d",&year1,&month1,&day1);

    int n1 = CountDay(year1,month1,day1);

    

    int year2,month2,day2;

  scanf("%4d%2d%2d",&year2,&month2,&day2);

    int n2 = CountDay(year2,month2,day2);

    

    cout<<abs(n1-n2)+1<<endl;

  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/556147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java学习:字面量,基本语句

一、字面量 1.字面量的类型 Java字面量的类型其实跟 c 的有点相似&#xff0c;有一点不一样的就是&#xff0c;Java有个null类型&#xff0c;注意这个没有大写 2.特殊字面量 \t 是制表符&#xff0c;它的作用就是补齐一个字符串到8位&#xff0c;这样就会使输出结果变得美观…

【arxiv】关于 SAM 的论文扫读(一)

文章目录 一、阴影检测二、弱监督下的隐蔽物体分割&#xff1a;基于SAM的伪标签和多尺度特征分组三、Instruct2Act&#xff1a;利用大型语言模型将多模态指令映射到机器人动作四、OR-NeRF: Object Removing from 3D Scenes Guided by Multiview Segmentation with Neural Radia…

Lucene(5):索引维护

1 需求 管理人员通过电商系统更改图书信息&#xff0c;这时更新的是关系数据库&#xff0c;如果使用lucene搜索图书信息&#xff0c;需要在数据库表book信息变化时及时更新lucene索引库。 2 添加索引 调用 indexWriter.addDocument&#xff08;doc&#xff09;添加索引。 参…

[Data structure]环形链表

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现 ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一…

文心一言 VS chatgpt (21)-- h264编码一帧数据的流程是怎样的?

h264编码一帧数据的流程是怎样的&#xff1f; 文心一言&#xff1a; H.264编码将一帧数据分成多个块&#xff0c;其中每个块可以单独进行编码。编码的过程包括预测、变换和量化等步骤。 具体流程如下&#xff1a; 1.帧内预测&#xff1a;对一帧视频进行编码&#xff0c;首先…

什么是网络编程

目录 一、什么是网络编程&#xff1f; 二、协议 1.用户数据报协议(User Datagram Protocol) 2.TCP协议 TCP三次握手过程 三、实例 1.UDP通信程序 实现步骤 TCP接收数据 四、TCP协议和UDP协议的区别和联系 一、什么是网络编程&#xff1f; 1.在网络通信协议下&#xf…

Qt编程基础 | 常用控件 | 组合框

一、组合框 1.1、定义 QComboBox提供了一种向用户呈现选项列表的方式&#xff0c;以占用最少的屏幕空间。 组合框是一个显示当前项目的选择小部件&#xff0c;可以弹出可选择项目的列表。 组合框可以是可编辑的&#xff0c;允许用户修改列表中的每个项目。 QComboBox 除了显示…

四、IOC容器(3)

一、IOC操作Bean管理&#xff08;外部属性文件&#xff09; 1.直接配置数据库信息 配置德鲁伊连接池引入德鲁伊连接池依赖jar包 <!--配置连接池--> <bean id"dataSource" class"com.alibaba.druid.pool.DruidDataSource"><property name&…

深度学习神经网络学习笔记-多模态方向-10-Neural Voice Cloning with a Few Samples

摘要 语音克隆是个性化语音接口非常需要的功能。我们介绍了一个神经语音克隆系统&#xff0c;该系统仅从少数音频样本中学习合成一个人的声音。我们研究了两种方法:说话人适应和说话人编码。说话人自适应是基于多说话人生成模型的微调。说话人编码是基于训练一个单独的模型来直…

GitLab CI/CD

CI/CD 简介 CI/CD 简单来说就是可以自动化编译、测试、打包我们的代码。 GitLab CICD的使用 首先需要安装gitlab-runner。 在GitLab 中&#xff0c;runners 是运行 CI/CD 作业的代理。我们的对代码的作业都是在runner上去执行的。我们可以在本地、服务器、等任意一个联网设…

chatgpt赋能Python-python_chat

Python Chat: 使用Python编程语言打造聊天应用 在当今数字化的时代&#xff0c;人们需要有一种跨越地域和时间的即时通讯方式&#xff0c;这就是聊天应用的用武之地。Python编程语言因其易读易写的特性&#xff0c;和广泛的社区支持成为了许多开发者的首选。Python Chat是一款…

2023年CentOS镜像下载地址,包括CentOS官网、国内镜像下载,超详细教学,小白也能学会。

目录 1.CentOS官网镜像下载 1.1进入CentOs官网镜像下载地址 1.2找到需要下载的版本 1.3选择isos镜像文件夹 1.4选择架构 1.5下载种子文件 2.阿里云开源镜像站下载 2.1进入阿里云开源镜像站下载地址 2.2找到需要下载的版本 2.3选择isos镜像文件夹 2.4选择架构​ 2.5…

vue3学习手册

vue3 1.认识vue31.1了解相关信息1.2 性能提升:1.3 新增特性1.4 使用 vue-cli 创建vue项目1.5 使用 vite 创建 2.全局api2.1 createApp()2.2 app.mount()2.3 app.unmount()2.4 app.provide()2.5 app.component()2.6 app.use()2.7 app.version2.8 app.config2.9 app.config.error…

阿拉德手游服务端Centos搭建教程

阿拉德手游服务端Centos搭建教程 大家好我是艾西&#xff0c;又有几天没有更新文章了。这几天看了看还是有不少人对手游感兴趣&#xff0c;今天给大家分享一款早些年大火的pc游戏&#xff0c;现在也有手游了“阿拉德”。 你是否还记得DNF&#xff0c;一天你不小心救了赛丽亚&a…

如何基于LiveNVR实现无人机等RTMP推流转成GB28181协议级联到GB28181视频平台

1、需求介绍 目前很多移动终端设备&#xff08;如无人机等&#xff09;只支持RTMP推流输出&#xff0c;不支持GB28181协议。但是又有需要通过GB28181协议接入到视频平台的需求。比如有些大疆无人机产品不能直接注册国标平台&#xff0c;只能rtmp推流。那么&#xff0c;项目中如…

什么是5G北斗RTK差分定位系统?它有哪些优势和应用领域?

5G技术的普及和应用&#xff0c;使得物联网和智能设备的使用越来越广泛。然而&#xff0c;在实际应用过程中&#xff0c;精准的定位数据是必不可少的。北斗差分定位系统作为一项定位技术&#xff0c;受到了市场的关注。本文将对5G北斗差分定位系统进行分析&#xff0c;并比较其…

作为一名软件测试从业人员,你有弄明白你的发展方向吗?

对于软件测试从业人员来说&#xff0c;职业发展方向的清晰并不仅仅是个人规划的问题&#xff0c;更是行业发展趋势所决定的。随着信息技术的快速发展和社会的变革&#xff0c;软件行业也在不断地演化中。因此&#xff0c;了解这个行业的发展趋势&#xff0c;并且根据自身的实际…

tcp丢包的排查

丢包的排查&#xff1a; 参考资料&#xff1a;1、https://blog.csdn.net/maimang1001/article/details/121786580 2、https://blog.csdn.net/m0_67645544/article/details/124574099 1、 网卡丢包 a) ifconfig b) 查看网卡丢包统计(虚拟机看不到网卡信息)&#xff1a;eth…

【论文阅读】CatSQL: Towards Real World Natural Language to SQL Applications

【论文阅读】CatSQL: Towards Real World Natural Language to SQL Applications 文章目录 【论文阅读】CatSQL: Towards Real World Natural Language to SQL Applications1. 来源2. 介绍3. 方法介绍3.1 CatSQL模板3.2 CatSQL 查询生成3.2.1 GraPPa嵌入网络3.2.2 使用CAT解码器…

Keil Debug 逻辑分析仪使用

Keil Debug 逻辑分析仪使用 基础配置 更改对应的bebug窗口参数 两边的 Dialog DLL 更改为&#xff1a;DARMSTM.DLL两边的 Parameter &#xff08;这里的根据单片机型号更改&#xff09;更改为&#xff1a;-pSTM32F103VE 选择左边的 Use Simulator 选项。 打开Debug和其中的逻…