首页 > 其他分享 >AcWing 3498. 日期差值(每日一题)

AcWing 3498. 日期差值(每日一题)

时间:2024-03-22 21:29:40浏览次数:21  
标签:return 3498 int 31 month 日期 差值 year AcWing

题目链接:3498. 日期差值 - AcWing题库

有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。

输入格式

输入包含多组测试数据。

每组数据占两行,分别表示两个日期,形式为 YYYYMMDD

输出格式

每组数据输出一行,即日期差值。

数据范围

年份范围 [1,9999]
保证输入日期合法。
测试数据的组数不超过 100

输入样例:

20110412
20110422

输出样例:

11

解题思路:

求出第一年1月1日起到y1年m1月d1日共多少天t1,第一年1月1日起到y2年m2月d2日共多少天t2,

|t2-t1|+1即为答案。求多少天时,要先求y1-1年,m-1月,共多少天,再加上d1即可。上代码!

#include<iostream>
using namespace std;
int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31};//一年365天月份数组
int is_leap(int year){//判断是否为闰年
	if(year%4==0&&year%100||year%400==0){
		return 1;
	}else{
		return 0;
	}
}
int getday(int year,int month){//获取哪一年哪一月的天数
	if(month==2)return 28+is_leap(year);//判断闰年二月份29天
    return months[month];
}
int calc(int year,int month,int day){//1~year年month月day日共多少天
	int ans=0;
	for(int i=1;i<year;i++){
		ans+=365+is_leap(i);//闰年多一天
	}
	for(int i=1;i<month;i++){
		ans+=getday(year,i);
	}
	return ans+day;
}
int main(){
	int y1,m1,d1,y2,m2,d2;
	while(~scanf("%04d%02d%02d\n%04d%02d%02d",&y1,&m1,&d1,&y2,&m2,&d2)){//多组输入
	//%04d表示输入为4位,不足4位前面补0
		printf("%d\n",abs(calc(y1,m1,d1)-calc(y2,m2,d2))+1);//两个日期之差取绝对值
		//+1,自己也是一天,比如1月1到1月2,这是两天,相减是一天,所以要加1
	}
	return 0;
}

日期问题为蓝桥杯热点问题,懂得了思路就好写了,大体问题要么求天数,要么求星期几,多加练习。文章尚有不足,有问题请各位大佬指出。

标签:return,3498,int,31,month,日期,差值,year,AcWing
From: https://blog.csdn.net/m0_73633807/article/details/136848858

相关文章

  • 蓝桥杯Java ABC组 AcWing P1020 潜水员
    题目链接:https://www.acwing.com/problem/content/1022/#二维背包#Model#Favorite思路好题!可以让你思考各种背包问题中,对体积的定义不同,则初始化就不同本题求的是是至少需要体积VV......
  • AcWing 1230. K倍区间 C++满分题解
    原题链接https://www.acwing.com/problem/content/1232/题目分析求区间和,我们可以通过前缀和来求出。我们规定sum[i]表示第1个元素到第i个元素的和。那么sum[r]-sum[l-1]就是区间[l,r]的和。一维前缀和for(inti=1;i<=n;i++){scanf("%lld",&sum[i]);......
  • AcWing 1171. 距离 Tarjan算法离线求LCA
    题目输入样例1:22121001221输出样例1: 100100输入样例2:32121031151232输出样例2: 1025LCA算法:LCA(LeastCommonAncestors)最近公共祖先Tarjan求LCA是一种离线的算法,也就是说它一遍求出所有需要求的点的LCA,而不是需要求哪两个点再去求......
  • 4262. 空调(acwing)
    文章目录4262.空调题目描述贪心+差分难点解析差分数组的更新计算最小命令数量更新差分数组反向差分计算计算最小指令数量4262.空调题目描述FarmerJohn的N头奶牛对他们牛棚的室温非常挑剔。有些奶牛喜欢温度低一些,而有些奶牛则喜欢温度高一些。FarmerJohn......
  • 3745. 牛的学术圈 I(acwing)
    文章目录3745.牛的学术圈I题目描述h指数的解释与计算二分查找3745.牛的学术圈I题目描述由于对计算机科学的热爱,以及有朝一日成为「Bessie博士」的诱惑,奶牛Bessie开始攻读计算机科学博士学位。经过一段时间的学术研究,她已经发表了N篇论文,并且她的第i篇......
  • AcWing 503. 借教室(每日一题)
    原题链接:503.借教室-AcWing题库在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。 面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来......
  • Acwing255.第k小数
    可持久化权值线段树#include<iostream>#include<stdio.h>#include<algorithm>#include<string>#include<cmath>#include<cstring>#include<vector>#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespace......
  • AcWing 1212. 地宫取宝
    Problem:AcWing1212.地宫取宝文章目录思路解题方法复杂度Code思路这是一个动态规划问题,我们需要找到所有可能的路径,其中每个路径中的宝物价值都是递增的,并且恰好有k个宝物。我们可以使用一个四维的动态规划数组dp[i][j][p][q],其中i和j表示当前的位置,p表示当前......
  • 破链成环-acwing第131场周赛-奶牛报数
    5364.奶牛报数-AcWing题库有 n 头奶牛,围成一圈,顺时针依次编号为 1∼n。其中,第 i 头奶牛的重量为 ai。现在,我们需要选择一头奶牛,并从该奶牛开始,所有奶牛按照顺时针的顺序进行 1∼n报数。报数完毕后,所有报出的数在 [l,r)范围内的奶牛,会被选中制作牛肉。我们希......
  • Acwing166 数独题解 - DFS剪枝优化
    166.数独-AcWing题库题意数独是一种传统益智游戏,你需要把一个9×9的数独补充完整,使得数独中每行、每列、每个3×3的九宫格内数字1∼9均恰好出现一次。请编写一个程序填写数独。思路搜索+剪枝(优化搜索顺序、位运算)优化搜索顺序:很明显,我们肯定是从当前能填合法......