日期相关的题目

embedded/2025/2/19 5:43:09/

日期相关的题目

  • 1. 计算日期到天数转换
  • 2. 日期累加
  • 3. 打印日期
  • 4. 日期差值

1. 计算日期到天数转换

在这里插入图片描述

输出示例:
在这里插入图片描述

思路:计算前n-1个月的天数在加上这个月的天数。

#include <iostream>
using namespace std;int main() {int year, month, day;cin >> year >> month >> day;int month_day[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int i = 0;int days = 0;for (i = 0; i < month; i++){days += month_day[i];}days += day;if(month > 2 && (((year % 4 == 0) && (year % 100 != 0)) || (year % 400) == 0)){days += 1;}cout << days;return 0;
}

在这里插入图片描述

2. 日期累加

在这里插入图片描述

输出示例:
在这里插入图片描述

思路:直接加到天上,在进位求出日期

#include <iostream>
using namespace std;int GetMonthDay(int year ,int month)
{int months[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int day = months[month];if (month == 2 &&( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))){day++;}return day;
}int main() {int n = 0;cin >> n;int year = 0,month = 0, day = 0,num;while (n-- && (cin >> year >> month >> day >> num) ) { day += num;while (day > GetMonthDay(year,month)){day -= GetMonthDay(year,month);month++;if (month == 13){month = 1;year++;}}printf("%04d-%02d-%02d\n", year, month, day);}
}

在这里插入图片描述

3. 打印日期

在这里插入图片描述

输出示例:
在这里插入图片描述
思路:从这年的1月1开始加,但是注意要要减掉一天,比如:求这一年的第一天的日期,就是1月1号,也可以理解为从1月0号开始加,所以直接加到天上,在进位求日期

#include <iostream>
using namespace std;int GetMonthDay(int year,int month)
{int months[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int day = months[month];if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) )){day += 1;}return day;
}int main() {int year = 0;int n = 0;while (cin >> year >> n) { //从这年的1月1开始加,但是要减一天int month = 1;int day = n;//1 + n - 1while (day > GetMonthDay(year,month) ){day -= GetMonthDay(year,month);month++;if (month == 13){year++;month = 1;}}printf("%4d-%02d-%02d\n",year,month,day);}
}

在这里插入图片描述

4. 日期差值

在这里插入图片描述

输出示例:
在这里插入图片描述

思路:直接从这天开始加,加到相等为止,每加一天就记一次数。

#include <iostream>
using namespace std;int GetMonthDay(int year,int month)
{int months[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};int day = months[month];if (month == 2 && (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))){day++;}return day;
}void Add(int& year,int& month,int& day)
{day += 1;while (day > GetMonthDay(year,month)){day -= GetMonthDay(year,month);month++;if (month == 13){month = 1;year++;}}
} int main() {int year1,month1,day1;scanf("%4d%2d%2d",&year1,&month1,&day1);int year2,month2,day2;scanf("%4d%2d%2d",&year2,&month2,&day2);int count = 0;int flag = 0;if (year2 > year1){flag = 1;}else if (year1 == year2 && month1 < month2){flag = 1;}else if (year1 == year2 && month1 == month2 && day1 < day2){flag = 1;}if (flag == 1){swap(year1,year2);swap(month1,month2);swap(day1,day2);}while (!(year1 == year2 && month1 == month2 && day1 == day2)){Add(year2,month2,day2);count++;}cout << count + 1;
}

在这里插入图片描述


http://www.ppmy.cn/embedded/7605.html

相关文章

ZCMU 1531: 序列的混乱程度

Description 有一个长度为n的正整数序列&#xff0c;一个序列的混乱程度定义为这个序列的最大值和最小值之差。请编写一个程序&#xff0c;计算一个序列的混乱程度。 Input 输入的第一行为一个正整数T (T<1000)&#xff0c;表示一共有T组测试数据。 每组测试数据的第一行为一…

C语言中, 文件包含处理,#include< > 与 #include ““的区别

文件包含处理 指一个源文件可以将另外一个文件的全部内容包含进来 &#xff23;语言提供了#include命令用来实现文件包含的操作 #include< > 与 #include ""的区别 <> 表示系统直接按系统指定的目录检索 "" 表示系统先在 "" 指定…

全量知识系统 详细程序设计 之“编程理念”(QA SmartChat)

Q1. 今天聊聊 全量知识系统 &#xff08;“全知系统”&#xff09;详细程序设计 之“编程理念” 全知系统是一种拥有无限知识和能力的智能系统&#xff0c;它能够理解和应对各种复杂问题&#xff0c;并给出最优解决方案。在设计全知系统的程序时&#xff0c;需要遵循以下编程理…

【Kotlin】协程

1 前言 相较于 C# 中的协程&#xff08;详见 → 【Unity3D】协同程序&#xff09;&#xff0c;Kotlin 中协程更灵活&#xff0c;难度更大。 协程是一种并发设计模式&#xff0c;用于简化异步编程&#xff0c;它允许以顺序化的方式表达异步操作&#xff0c;避免回调地狱等问题。…

设计模式-命令模式

命令模式 命令模式是一种行为设计模式&#xff0c;它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中&#xff0c;且能实现可撤销操作。 Hystrix是Netflix开源的一款容错框架&#xff0c;具有自我…

上海人工智能实验室代表的国家科研模式创新

本文转载自AI科技评论,真实性由 AI科技评论 负责。 文章目录 1. 人工智能科研模式创新2. 候选人特征Reference2023 年 12 月,上海人工智能实验室第一位主任汤晓鸥意外逝世。汤博士的突然离世令人惋惜,其离世后,上海人工智能实验室的主任位置也一直空缺至今。 1. 人工智能科…

深入浅出Python机器学习:从零开始的SVM教程/厾罗

导言&#xff1a; 在众多机器学习算法中&#xff0c;支持向量机&#xff08;Support Vector Machine, SVM&#xff09;以其强大的分类能力和理论背景受到了广泛的应用。SVM不仅在学术领域表现出色&#xff0c;而且在工业界也有着极高的声誉。本文将带领大家从零开始&#xff0…

玄子Share-揭开5G神秘面纱

玄子Share-揭开5G神秘面纱 移动通信发展历程 在移动通信领域&#xff0c;常听到3G、4G的术语 G是Generation的简写&#xff0c;每一个G&#xff0c;都代表了移动通信的一个发展阶段&#xff0c;也是一个时代移动通信技术从 20 世纪 80 年代诞生开始&#xff0c;历经这 30 多…