KY222 打印日期+KY111日期差值

一、KY222题目

二、代码

#include <climits>
#include <iostream>
using namespace std;
class Date{
    public:
        Date(int year =1,int month =2,int day =3)
        {
            _year = year;
            _month = month;
            _day = day;
        }
        int GetDay(int year ,int month);
        void Define(int n);


    public:
        int _year;
        int _month;
        int _day;
};
int Date::GetDay(int year ,int month)
        {
            static int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
            if(month == 2)
            {
                if((year%4==0 && year%100!=0 ) || year%400 == 0)
                return 29;
            }
            return a[month];
        }
void Date::Define(int n)
{
    _day +=n;
    while(_day>GetDay(_year,_month))
    {
        _day -=GetDay(_year,_month);
        ++_month;
        if(_month == 13)
        {
            ++_year;
            _month =1;
        }
    }
}

int main() {
    int year,num;
    cin>>year>>num;
    Date d(year,1,0);
    d.Define(num);
    printf("%04d-%02d-%02d",d._year,d._month,d._day);
    return 0;
    }
// 64 位输出请用 printf("%lld")

三、KY111题目

四、代码

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
class Date {
public:
    Date(int year = 0, int month = 0, int day = 0) {
        _year = year;
        _month = month;
        _day = day;
    }
    int GetDay(int year, int month);
    bool operator<(const Date& d);
    int D_value(Date d);//计算日期差
    int Total_end();//某一年1月1日到某一天一共有多少天
    int Total_year();//某一年的总天数
public:
    int _year;
    int _month;
    int _day;

};

int Date::GetDay(int year, int month) {
    const static int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    if (month == 2) { //某年是闰年的时候,2月为29
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
            return 29;
        }

    }
    return a[month];
}

bool Date::operator<(const Date& d)
{
    if (_year < d._year)
        return true;

    else if (_year == d._year && _month < d._month)
        return true;

    else if (_year == d._year && _month == d._month && _day < d._day)
        return true;

    else
        return false;
}

int Date::Total_end()//某一年1月1日到某一天一共有多少天
{
    int sum = _day;
    while (--_month)
    {
        sum += GetDay(_year, _month);
    }
    return sum;
}

int Date::Total_year()//某一年的总天数
{
    int sum = 0;
    for (int i = 1; i <= 12; i++)
    {
        sum += GetDay(_year, i);
    }
    return sum;
}


int Date::D_value(Date d)
{
    Date tmp(d);
    if ((*this) < tmp)
    {
        if (_year == tmp._year)
        {
            return tmp.Total_end() - this->Total_end();
        }
        else
        {
            int d1 = this->Total_year() - this->Total_end();
            int d2 = tmp.Total_end();
            int x = _year + 1;
            int d3 = 0;
            while (x != tmp._year)
            {
                Date x_(x, 1, 1);
                d3 += x_.Total_year();
                x++;
            }
            return d1 + d2 + d3;
        }
        
    }
    else//this大
    {
        if (_year == tmp._year)
        {
            return this->Total_end() - tmp.Total_end();
        }
        else
        {
            int d1 = tmp.Total_year() - tmp.Total_end();
            int d2 = this->Total_end();
            int x = tmp._year + 1;
            int d3 = 0;
            while (x != _year)
            {
                Date x_(x, 1, 1);
                d3 += x_.Total_year();
                x++;
            }
            return d1 + d2 + d3;
        }
    }

}



int main() {
    int year_1, month_1, day_1;
    int year_2, month_2, day_2;
    int date1, date2;
    while (scanf("%d%d", &date1, &date2) != EOF)
    {
        year_1 = date1 / 10000;
        month_1 = (date1 / 100) % 100;
        day_1 = date1 % 100;

        year_2 = date2 / 10000;
        month_2 = (date2 / 100) % 100;
        day_2 = date2 % 100;

        Date d1(year_1, month_1, day_1);
        Date d2(year_2, month_2, day_2);
        cout<<d1.D_value(d2)+1;//不加1时,相邻两天差1天
        return 0;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Unity2D】粒子特效

为什么要使用粒子特效 Unity 的粒子系统是一种非常强大的工具&#xff0c;可以用来创建各种各样的游戏特效&#xff0c;如火焰、烟雾、水流、爆炸等等。使用粒子特效可以使一些游戏动画更加真实或者使游戏效果更加丰富。 粒子特效的使用 在Hierarchy界面右键添加Effects->…

【分布式系统】分布式系统的8个谬误

网络可靠 对于分布式系统来说&#xff0c;网络、计算、存储是三大基石&#xff0c;系统之间进行拆分隔离之后&#xff0c;那么必定存在网络通讯&#xff0c;而网络是最不可靠的。 不管是从硬件层面还是软件层面来说&#xff0c;网络是不可靠的。&#xff08;断电、配置错误、ID…

基于FPGA的VGG16卷积神经网络加速器--WL

VGG16是一个典型的卷积神经网络&#xff0c;由13层卷积层&#xff0c;5层池化层和3层全连接层组成。且卷积层的计算时间在整个计算过程中占比极大&#xff0c;通过FPGA的并行运算可以有效的加快卷积层的计算速度。 一个卷积层可以有若干个卷积核&#xff0c;以第一层为例&#…

go学习 3、基础数据类型

3、基础数据类型 基础数据类型&#xff1a;数字、字符串、布尔型复合类型&#xff1a;数组、结构体引用类型&#xff1a;指针、切片、字典、函数、通道接口类型 3.1 整型 有符号、无符号 int8/int16/int32/int64 uint8/uint16/uint32/units 64 Unicode字符rune类型是和int32…

使用Spring Boot AOP实现日志记录

目录 介绍 1.1 什么是AOP 1.2 AOP体系与概念 AOP简单实现 2.1 新建一个SpringBoot项目&#xff0c;无需选择依赖 2.2 设置好本地Maven配置后&#xff0c;在pom.xml文件里添加添加maven依赖 2.3 创建一个业务类接口 2.4 在实体类实现接口业务 2.5 在单元测试运行结果 …

python中的单引号、双引号和多引号

目录 python中的单引号 python中的双引号 python中的多引号 三者分别在什么时候使用&#xff0c;有什么区别 总结 python中的单引号 在Python中&#xff0c;单引号&#xff08;&#xff09;可以用来表示字符串。 可以使用单引号创建一个简单的字符串&#xff0c;例如&…

第1章 JavaScript简史

JavaScript的起源 JavaScript是Netscape公司与Sun公司合作开发的在JavaScript诞生之前游览器就是显示超文本文档的简单的软件&#xff0c;JavaScript为此增加了交互行为ECMAScript是JavaScript的标准化&#xff0c;本质上是同一个语言JavaScript是一门脚本语言通常只能运行在游…

仿VScode MDK背景配色方案

效果如果所示 操作方法&#xff1a;备份后修改~/UV4文件夹下的global.prop&#xff0c;用以下的代码代替。 # properties for all file types indent.automatic1 virtual.space0 view.whitespace0 view.endofline0 code.page936 caretline.visible1 highlight.matchingbraces1…

【数据结构】队列(Queue)的实现 -- 详解

一、队列的概念及结构 1、概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出 FIFO(First In First Out)。 入队列&#xff1a;进行插入操作的一端称为队尾。 出队列&#xff1a;进行删除操作的…

当ChatGPT应用在汽车行业,具体有哪些场景?

​ ChatGPT有潜力彻底改变汽车行业并将其提升到新的高度。在ChatGPT的加持下&#xff0c;该行业的多个领域都将取得重大变化。 利用ChatGPT作更高级的虚拟助理 你可能用过现有的虚拟助理&#xff0c;它们一系列的回复有时候让人不得不感叹一句“人工智障”&#xff01;然而&a…

Android Glide预处理preload原始图片到成品resource 预加载RecyclerViewPreloader,Kotlin

Android Glide预处理preload原始图片到成品resource & 预加载RecyclerViewPreloader&#xff0c;Kotlin <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_MED…

RT1052的定时器

文章目录 1 通用定时器1.1 定时器框图1.2 实现周期性中断 2 相关寄存器3 定时器配置3.1 时钟使能3.2 初始化GPT1定时器3.2.1 base3.2.2 initConfig3.2.2.1 clockSorce3.2.2.2 divider3.2.2.3 enablexxxxx 3.3 设置 GPT1 比较值3.3.1 base3.3.2 channel3.3.3 value 3.4 设置 GPT…

合并两个有序数组——力扣88

文章目录 题目描述法一 双指针法二 逆向双指针 题目描述 法一 双指针 使用双指针方法&#xff0c;将两个数组看作队列&#xff0c;每次从两个数组头部取出比较小的数字放到结果中。 void merge(vector<int>&nums1, int m,vector<int>&nums2, int n){int p1…

什么是DOTS?

(图片为实机测试) DOTS全称&#xff1a;&#xff08;Burst Job SystemEntity Component System&#xff09; 新型高性能、多线程面向数据的技术堆栈 是由&#xff1a;BrustJob System ECS组合而成&#xff0c;是一种面向数据对象的编程体系&#xff0c;在unity中您也可以对…

Psim 2022电力仿真--锁相环控制程序

目录 目录 1.原理 2.代码实现 3.仿真实现 4.仿真结果 5.讨论 1.原理 三相锁相环是一种用于控制交流&#xff08;AC&#xff09;信号的相位、频率和波形的电路&#xff0c;其原理和应用也广泛用于电源领域。使用三相锁相环可以使交流电源输出的电压稳定、精准地与输入信号…

如何降低TCP在局域网环境下的数据传输延迟

以Ping为例。本案例是一个测试题目&#xff0c;只有现象展示&#xff0c;不含解决方案。 ROS_Kinetic_26 使用rosserial_windows实现windows与ROS master发送与接收消息_windows 接收ros1 消息 什么是ping&#xff1f; AI&#xff1a; ping是互联网控制消息协议&#xff08;…

国内 github.com经常打不开的解决办法

1、打开网站http://tool.chinaz.com/dns/ 2、在A类型中填写github.com,再点击监测按钮 3、复制下面任意一个ip 4、打开电脑文件C:\Windows\System32\drivers\etc下的host文件 5、在host文件的最后一刚加入刚才复制的IP 6、重新打开GitHub

tensorRT模型性能测试

目录 前言1. 模型训练1.1 模型1.2 数据集1.3 xml2yolo1.4 yolo2json1.5 json2yolo1.6 训练 2. TRT模型转换2.1 YOLOv5 ONNX导出2.2 YOLOv6 ONNX导出2.3 YOLOv5 engine生成2.4 YOLOv6 engine生成 3. TRT模型测试3.1 YOLOv5 engine mAP测试3.2 YOLOv5 engine 速度测试3.3 YOLOv6 …

第120天:免杀对抗-防朔源防流量防特征CDN节点SSL证书OSS存储上线

知识点 #知识点&#xff1a; 1、CS-CDN节点-防拉黑 2、CS-SSL证书-防特征 3、CS-OSS存储-防流量#章节点&#xff1a; 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加壳花指令-资源 代码加载面-D…

【ARM】内核驱动之设备树的学习-长文

❤️作者主页:凉开水白菜 ❤️作者简介:共同学习,互相监督,热于分享,多加讨论,一起进步! ❤️点赞 👍 收藏 ⭐再看,养成习惯 订阅的粉丝可通过PC端文末加我微信,可对文章的内容进行一对一答疑! 文章目录 一、什么是设备树,为什么叫设备树?二、如何编译设备树?三、…