C/C++—有关日期类的OJ题

news2024/11/16 11:42:09

 

✨✨ 欢迎大家来到小伞的大讲堂✨✨

🎈🎈养成好习惯,先赞后看哦~🎈🎈

所属专栏:C++学习
小伞的主页:xiaosan_blog

1.计算日期到天数的转换(简单)

计算日期到天数转换__牛客网 (nowcoder.com)​​​​​​

这题主要考察对闰年平年的判断,大家肯定能轻松解决的!!! 

#include <stdio.h>

int main() {
    int y, m, d;
    scanf("%d %d %d", &y, &m, &d);
     //判断是否为闰年
    int arr[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    if (((y % 4 == 0) && (y % 100 != 0)) || y % 400 == 0) {
        arr[1] = 29;

    }//求和
    int sum = 0;
    for (int i = 0; i < m - 1; i++) {
        sum += arr[i];
    }
    sum += d;
    printf("%d", sum);
    return 0;

}

2.日期差值(简单)

日期差值__牛客网 (nowcoder.com)

本题我采用的是年月分别求和(y1为最大值),计算两个的年份的差值(单独计算),求和他们本年的天数,sum求和;

 相信大家会有更方便的方法的!!!

#include <stdio.h>

void swap(int* x, int* y) {
    int tmp = *x;
    *x = *y;
    *y = tmp;
}

int main() {
    int y1, m1, d1, y2, m2, d2;
    int arr[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    scanf("%4d%2d%2d", &y1, &m1, &d1);
    scanf("%4d%2d%2d", &y2, &m2, &d2);
    int sum2 = 0;
    int sum1 = 0;
    //因为后面我认为y1为大值,所以在这里判断将y1设置为大值
    if (y1 < y2) {
        swap(&y1, &y2);
        swap(&m1, &m2);
        swap(&d1, &d2);
    }
    if (y1 == y2) {
        if (m1 < m2) {
            swap(&m1, &m2);
            swap(&d1, &d2);
        }
    }
    if (y1 == y2) {
        if (m1 == m2) {
            if (d1 < d2) {
                swap(&d1, &d2);
            }
        }
    }

    //差的年数
    int x = y1 - y2;
    //记录y2年的天数
    if (((y2 % 4 == 0) && (y2 % 100 != 0)) || y2 % 400 == 0) {
        //判断是否为闰年
        arr[1] = 29;
    }
    for (int i = 0; i < m2 - 1; i++) {
        sum2 += arr[i];
    }
    sum2 += d2;
    //记录y1年的天数
    if (((y1 % 4 == 0) && (y1 % 100 != 0)) || y1 % 400 == 0) {
        //判断是否为闰年
        arr[1] = 29;
    }
    for (int i = 0; i < m1 - 1; i++) {
        sum1 += arr[i];
    }
    sum1 += d1;
    for (int i = 0; i < x; i++) {
        if (((y1 % 4 == 0) && (y1 % 100 != 0)) || y1 % 400 == 0) {
            sum1 += 366;
        } else {
            sum1 += 365;
        }
    }
    printf("%d", sum1 - sum2+1);

    return 0;
}

3.日期累加

日期累加__牛客网 (nowcoder.com)

本题主要处理进位的问题,注意本题的打印格式 

#include <iostream>
using namespace std;

static int arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int main() {
    int n;
    scanf("%d", &n);
    while (n--) {
        int y, m, d, add;
        //将年月日分别取值,以便后续分别处理
        scanf("%4d%2d%2d", &y, &m, &d);
        scanf("%d", &add);
        d += add;//将日相加
        if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) {
            arr[2] = 29;
        }
        //判断是否超过当月的天数
        while (d > arr[m]) {
            if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) {
                arr[2] = 29;
            } else {
                arr[2] = 28;
            }
            d -= arr[m];
            m++;
            while (m > 12) {
                m -= 12;
                y++;
            }
        }
        //因为对打印的值有特殊要求,这里需要特殊处理
        if (m > 9)
            if (d > 9) {
                printf("%d-%d-%d\n", y, m, d);
            } 
            else {
                printf("%d-%d-0%d\n", y, m, d);
            } 
        else{ 
           if (d > 9) {
            printf("%d-0%d-%d\n", y, m, d);
           } 
           else {
            printf("%d-0%d-0%d\n", y, m, d);
           }
        }
    }
}

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

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

相关文章

Qt-QTreeWidget多元素控件(38)

目录 描述 QTreeWidget 方法 QTreeWidget 信号 QTreeWidgetItem 属性 QTreeWidgetItem 方法 控制 使用 界面操作 代码操作 总结 描述 使⽤ QTreeWidget 表⽰⼀个树形控件.⾥⾯的每个元素,都是⼀个 QTreeWidgetItem ,每个 QTreeWidgetItem 可以包含多个⽂本和图标,每…

电脑系统重装系统盘文件还能恢复吗?

当我们的电脑出现中病毒、系统文件受损、系统变慢、无法启动或蓝屏等情况&#xff0c;大部分朋友都会选择重装系统。但重装系统后原来保存在系统盘的文件都会被删除。遇到这种情况&#xff0c;我们还有方法可以恢复之前保存在系统盘的文件吗&#xff1f; 一、从备份中恢复数据 …

智能优化算法-人工鱼群优化算法(ASFA)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 人工鱼群优化算法 (Artificial Fish Swarm Algorithm, AFSA) 是一种基于群体智能的元启发式优化算法&#xff0c;它模拟了鱼群的觅食、聚群和避障行为&#xff0c;用于解决复杂的优化问题。 AFSA的工作机制主要…

Xilinx的JESD204B PHY层IP仿真及上板测试(JESD204B四)

本文配置JESD204B PHY的参数&#xff0c;分析其示例工程&#xff0c;并且对该IP进行仿真&#xff0c;由于该IP只是物理层&#xff0c;并没有上层协议&#xff0c;因此与GTX/H其实没有太大区别。 1、配置IP 如下图所示&#xff0c;在IP Catalog中搜索JESD204B的PHY&#xff0c;…

国产RISC-V案例分享,基于全志T113-i异构多核平台!

RISC-V核心优势 全志T113-i是一款双核Cortex-A7@1.2GHz国产工业级处理器平台,并内置玄铁C906 RISC-V和HiFi4 DSP双副核心,可流畅运行Linux系统与Qt界面,并已适配OpenWRT系统、Docker容器技术。 而其中的RISC-V属于超高能效副核心,主频高达1008MHz,标配内存管理单元,可运…

python 魔法方法简记

简单记录python中的魔法方法 一、构造与析构 __init__(self[,...]) 需要初始化时可重写__init__方法 __new__(cls[,...]) 以类为参数&#xff0c;返回实例化对象 __del__(self) 前两个为构造器&#xff0c;此为析构器&#xff0c;用于销毁对象 二、算术运算 1、算术运算…

大文件想要传输成功,怎么把ZIP文件分卷压缩

不知道各位小伙伴有没有这样的烦恼&#xff0c;发送很大很大的压缩包会受到限制&#xff0c;为此&#xff0c;想要在压缩过程中将文件拆分为几个压缩包并且同时为所有压缩包设置加密应该如何设置&#xff1f; 方法一&#xff1a;使用7-Zip免费且强大的文件管理工具 7-Zip也是一…

MATLAB定位程序与讲解【专栏介绍】

AOA&#xff08;到达角度&#xff09;定位原理&#xff1a; 描述了基于到达角度进行定位的方法&#xff0c;适用于一维、二维或三维空间。 由动静压之比求马赫数的MATLAB函数&#xff1a; 提供了一个计算马赫数的函数&#xff0c;用于流体力学中速度的计算。 三边法定位与三点法…

【电子通识】案例:连接器接线顺序评估为什么新人总是评估不到位?

在一个IC卡切换的工装板(一切多)中,设计需求是一张PCB(充当活动卡片)插入读卡器,将卡片中的所有信号引出通过连接器连接到后级设备。 比如下图所示是一种IC卡压力测试设备,使用钢片卡片将压力信号通过连接器引入测试设备。 最后根据ISO/IEC 7816-2标准中我们看到…

hexo本地部署-图文教程

hexo本地部署-图文教程 最终效果前置条件安装使用配置主题创建页面标签页分类页友链页404页 个性化设置语言及网站信息设置导航栏,菜单目录头像及背景封面图美化特效 模板页的配置说明页面 Front-matter文章 Front-matter 最终效果 前置条件 你的电脑需要有git,node环境 安装使…

MySQL 中优化 COUNT()查询的实用指南

在 MySQL 数据库的使用中&#xff0c;我们经常会用到 COUNT()函数来统计行数或满足特定条件的行数。然而&#xff0c;在处理大规模数据时&#xff0c;COUNT()查询可能会变得非常缓慢&#xff0c;影响数据库的性能。那么&#xff0c;如何在 MySQL 中优化 COUNT()查询呢&#xff…

TRIZ理论在机器人性能优化中的应用

随着机器人应用场景的不断拓展&#xff0c;对机器人性能的要求也日益提高。如何在保证功能多样化的同时&#xff0c;提升机器人的性能稳定性、效率及智能化水平&#xff0c;成为了工程师和研发人员面临的重大挑战。TRIZ理论&#xff0c;即发明问题解决理论&#xff0c;以其系统…

Python和C++及MATLAB距离相关性生物医学样本统计量算法及数据科学

&#x1f3af;要点 统计观测值之间距离计算代谢组学和脂质组学分析相关距离矩阵计算卡方检验偏差校正快速计算距离协方差算法大规模生物系统分析距离矩阵相关性测试石油勘探统计学关系 Python距离矩阵 在数学、计算机科学&#xff0c;尤其是图论中&#xff0c;距离矩阵是一…

02-Mybatis基础操作

1. Mybatis基础操作 1.1 需求 需求说明&#xff1a; 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求&#xff0c;完成员工管理的需求开发 通过分析以上的页面原型和需求&#xff0c;我们确定了功能列表&#xff1a; 查询 根据主键ID查询条件查询 新增更新删除 根…

FreeRTOS(四)FreeRTOS列表与列表项

目录 列表 列表项 迷你列表项 列表和列表项的关系 列表相关API函数 列表初始化 列表项初始化 列表项插入 列表项末尾插入 列表项删除 列表遍历 在 FreeRTOS 中&#xff0c;列表&#xff08;List&#xff09;和列表项&#xff08;ListItem&#xff09;是核心数据结构&…

如何防止订单重复

如何防止订单重复 在整个下单流程中&#xff0c;哪里重复操作影响最大&#xff1f;确认订单只是修改订单状态从未支付改为待支付而已&#xff0c;不会对我们的主要业务产生影响&#xff0c;而在支付的时候&#xff0c;主要由第三方平台&#xff0c;我们也可以不用管&#xff0c…

记一次Windows状态栏不显示问题

文章目录 &#x1fa9f;解决方案☁️单次处理☁️有效处理 &#x1fa9f;现象&#x1fa9f;尝试的操作⭐END&#x1f31f;跋&#x1f31f;交流方式 &#x1fa9f;解决方案 ☁️单次处理 重启explorer.exe 命令行操作 注意&#xff0c;使用命令行操作的时候&#xff0c;出现…

Cocos 3.8.3 实现外描边效果(逃课玩法)

本来想着用Cocos 的Shader Graph照搬Unity的思路来加外描边&#xff0c;发现不行&#xff0c;然后我就想弄两个物体不就行了吗&#xff0c;一个是放大的版本&#xff0c;再放大的版本上加一个材质&#xff0c;这个材质面剔除选择前面的面剔除就行了&#xff0c;果不其然还真行。…

字幕制作软件有哪些?整理了适合新手的5个方法,快速导出srt字幕文件!

字幕制作软件有哪些&#xff1f;平时创作视频作品时&#xff0c;大部分会用到字幕。毕竟字幕是视频中不可或缺的一部分&#xff0c;字幕文件在传达视频内容上达到了重要的作用。 常见的字幕文件有srt、ass和sub格式。市面上比较常用的是srt字幕格式&#xff0c;这种格式几乎适用…

滑动窗口 -- 限制窗口内某元素的数量/种类

目录 长度最小的数组 题解&#xff1a; 将x减到0的最小操作数 题解&#xff1a; 最大连续1的个数 题解&#xff1a; 无重复字符的最长子串&#xff08;限制数量&#xff09; 题解&#xff1a; 水果成篮&#xff08;限制种类&#xff09; 题解&#xff1a; 找到字符串中…