日期差值 1096

问题描述

链接:https://www.nowcoder.com/questionTerminal/ccb7383c76fc48d2bbc27a2a6319631c

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

输入描述:

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

输出描述:

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

示例1

输入

20110412
20110422

输出

11

思路

  1. 推荐思路(乾哥的思路):

    软男说算法能过就行, 尽可能把实现的方法想简单些(emmmm)

    • 计算第一个日期中月份和日到一月一日的天数, 记为days1
    • 计算第一个日期中月份和日到一月一日的天数, 记为days2
    • 只计算两个日期的年份对应的日期差值
  2. 大辣鸡思路(me):
    • 计算年之间差值
    • 计算月之间差值
    • 计算日之间差值

代码

#include <cstdio>int month[13][2] = {//平年,闰年0,  0,31, 31,//一月28, 29,//二月31, 31,//三月30, 30,//四月31, 31,//五月30, 30,//六月31, 31,//七月31, 31,//八月30, 30,//九月31, 31,//十月30, 30,//十一月31, 31 //十二月
};int isLeap(int year) {/** 求平年闰年* 平年返回0* 闰年返回1*/if (year % 100 != 0 && year % 4 == 0 || year % 400 == 0) {return 1;} else {return 0;}
}int main() {int y1 = 0, m1 = 0, d1 = 0, y2 = 0, m2 = 0, d2 = 0;while (scanf("%4d%2d%2d", &y1, &m1, &d1) != EOF) {scanf("%4d%2d%2d", &y2, &m2, &d2);//平年365天//闰年366天int days1 = 0;//日期一, 月及日到当年一月一日的天数int days2 = 0;//日期二, 月及日到当年一月一日的天数int days = 0; //最后返回两日期的差值for (int i = 1; i < m1; ++i) {/** 求日期一, 月到当年一月一日的天数*/days1 += month[i][isLeap(y1)];}for (int i = 1; i < m2; ++i) {/** 求日期二, 月到当年一月一日的天数*/days2 += month[i][isLeap(y2)];}//求日期一,日期二, 日到当月一日的天数days1 += d1;days2 += d2;//求两日期年份差值if (y1 > y2) {for (; y2 < y1; y2++) {if (isLeap(y2) == 1) {days += 366;} else {days += 365;}}days += days1 - days2;} else {for (; y1 < y2; y1++) {if (isLeap(y1) == 1) {days += 366;} else {days += 365;}}days += days2 - days1;}//按照题目叙述,需要返回差值加一printf("%d\n", days + 1);}
}

转载于:https://www.cnblogs.com/edhg/p/7745914.html

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

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

相关文章

如何使用python给PDF文件加水印

Python作为编程界最火的语言&#xff0c;能做的事几乎你能想到的它都能干&#xff0c;就连抢茅台都可以&#xff0c;还有什么不行&#xff1f;&#xff01;Python作为脚本编程语言&#xff0c;可以做很多事情。使用Python&#xff0c;你可以轻松地给pdf加上水印。 你可以使用名…

搭建一个redis高可用系统

一、单个实例 当系统中只有一台redis运行时&#xff0c;一旦该redis挂了&#xff0c;会导致整个系统无法运行。 单个实例二、备份 由于单台redis出现单点故障&#xff0c;就会导致整个系统不可用&#xff0c;所以想到的办法自然就是备份&#xff08;一般工业界认为比较安全的备…

建设者还是二传手?

不用说&#xff0c;每个对象都需要先创建才能使用。 无论我们是在谈论域&#xff0c;框架&#xff0c;库还是任何其他类型的类&#xff0c;都没有关系。 当您的代码是面向对象的时&#xff0c;这些类仅是对象的定义。 在创建对象之前&#xff0c;不能使用它们。 在谈论对象的初…

SSH连接远程服务器,本地known_hosts文件记录了什么

今天工作时&#xff0c;使用ssh命令远程连接公司的本地服务器时&#xff0c;突然出现以下错误bash-3.2$ ssh argus192.168.200.8 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdroppin…

“全人类的知识宝藏”维基百科迎来了20岁的生日!

维基百科从一个伟大的想法开始&#xff0c;与无数的像你像我一样的阅读者&#xff0c;创作者&#xff0c;捐赠者和粉丝经历了互联网的20年&#xff0c;今天让我们一起为这个属于所有互联网人的成果庆祝一次生日。值此20周年特地为它做了一个主页&#xff1a;https://wikimediaf…

转:智能音箱市场深度报告:怎么大家都在抢这个两亿小蛋糕?

原文链接&#xff1a;http://www.sohu.com/a/199335366_115978 智能音箱是今年最热的智能硬件项目之一。目前&#xff0c;智能音箱已经有了比较成熟的技术方案和模式思路&#xff0c;但消费市场似乎依然秉持着比较谨慎的态度。智能音箱市场上的主流产品都有什么思路&#xff1f…

Tailwindcss尤大神都fork了,是未来的趋势?

最近Tailwindcss频繁出现在我的视野里&#xff0c;从单词拼写中看&#xff0c;多多少少与css有点关系。近几年是JS框架大行其道&#xff0c;CSS方面少有新的框架出现。昨天突然看到尤大神在Github上的动态&#xff0c;fork了该项目&#xff0c;看来马上要火的节奏啊&#xff01…

JUnit 5 –架构

现在我们知道如何设置JUnit 5并使用它编写一些测试 &#xff0c;下面让我们看一下。 在本文中&#xff0c;我们将讨论JUnit 5架构以及采用这种方式的原因。 总览 这篇文章是有关JUnit 5的系列文章的一部分&#xff1a; 设定 基本 建筑 条件 注射 … JUnit 4 忽略Hamcre…

前端程序员书桌上不可缺少的CSS书籍

作为前端&#xff0c;CSS不仅要会&#xff0c;而且要精通&#xff0c;随着各种浏览器规范参差不齐和网页交互多元化的趋势越来越复杂&#xff0c;前端程序员必须要将CSS基础知识打牢。由于现在的框架越来越多&#xff0c;导致很大一部分程序员的工作只是拿着现成的组件布局&…

nodejs 进阶:图片缩小

demo 效果&#xff1a; 代码&#xff1a; /*** Created by ZXW on 2017/10/30.*/ var fs require(fs); var gm require(gm);gm(./不饿.jpg).resize(50, 50,"!").write(./不饿1.jpg, function (err) {if (!err) console.log(done);});2017-10-30 22:10:46转载于:ht…

可能是最先出来的关于介绍使用Vue3的一本书

Vue3 release版本已发布有几个月了&#xff0c;不少公司都已经开始使用vue3开发项目了&#xff0c;市场上的主流的框架如&#xff1a;Vant&#xff0c;Element UI&#xff0c;Taro也都发布了支持Vue3的版本。Vue3很多的开发优势自不必再说&#xff0c;学习上手vue3已经成为每个…

JPA陷阱/错误

根据我在帮助团队和进行培训方面的经验&#xff0c;这是我遇到的一些陷阱/错误&#xff0c;这些陷阱/错误在使用JPA的基于Java的系统中引起了一些问题。 需要一个公共的无参数构造函数 始终使用双向关联/关系 使用OneToMany收集可能庞大的集合 需要一个公共的无参数构造函数…

CSGL

glShadeModel void glShadeModel(GLenum mode) GL_FLAT/【GL_SMOOTH】 着色技术选择 glClearDepth GL.glClearDepth(depth); glClearDepth&#xff1a;设置深度缓存的清除值 参数 depth 指定清除深度缓存时使用的深度值。 说明 本函数指定用glClear清除深度缓存时所使用的深度值…

强大的Canvas开源库Fabric.js简介与开发指南

什么是Fabric.js&#xff1f;Fabric.js 是一个强大且简单的Javascript HTML5 Canvas库。官网地址&#xff1a;http://fabricjs.com/为什么要使用Fabric.js&#xff1f;Canvas提供一个好的画布能力, 但是Api不够友好。绘制简单图形其实还可以, 不过做一些复杂的图形绘制, 编写一…

模拟qq斗地主-准备发牌抢地主都是农民下一轮准备

为什么要搞这样一个项目&#xff1f;&#xff1f; 1&#xff0c;满足自己的java网络多线程编程的欲望&#xff01;因为之前一直都是搞web开发&#xff0c;服务器和客户端数据交流人家web服务器早就给你搞好了&#xff0c;比如tomcat,jetty...等等&#xff0c;其实之前脑子里就有…

rube3xxx_Rube GoldbergSpring整合

rube3xxxSpring Integration为集成系统所涉及的一些复杂性提供了非常好的抽象-Spring Integration从Integration的角度完美地满足了Facade的定义-简化了对复杂基础系统的访问。 为了说明这一点&#xff0c;请考虑一个简单的系统&#xff0c;该系统仅接收一条消息&#xff0c;然…

纯CSS实现React Logo图形,内含详细解析

以上是将要实现的效果&#xff0c;Javascript框架React的Logo图形&#xff0c;首先我们来拆解下&#xff0c;它包括三个交叉的椭圆和中间一个圆点&#xff0c;所以我们Html元素可以用以下代码实现&#xff1a;<div class"main"><div class"ellipse ell…

学生ID查询

var http require("http");var server http.createServer(function(req,res){//得到urlvar userurl req.url;res.writeHead(200,{"Content-Type":"text/html;charsetUTF8"})//substr函数来判断此时的开头if(userurl.substr(0,9) "/stud…

平等还是认同?

将对象存储在集合中时&#xff0c;同一对象永远不能添加两次非常重要。 这是集合的核心定义。 在Java中&#xff0c;使用两种方法来确定两个引用的对象是否相同或它们是否可以同时存在于同一Set中。 equals&#xff08;&#xff09;和hashCode&#xff08;&#xff09;。 在本文…

二次优化大招(由泰勒公式推出最值条件)

经过前两篇的铺垫&#xff0c;这一篇迎来了高潮。先说一句&#xff1a;特征值大法好&#xff01; 在开始正文之前&#xff0c;先看以下简单的推导 有了这些&#xff0c;理解下面的泰勒公式推出最值条件就容易了 转载于:https://www.cnblogs.com/Mr-ZeroW/p/7764916.html