日期0~y年的日子

简介: 日期0~y年的日子

日期差值

image.png


主要记录一下日期的算法,老师作业的日期算法惊艳到我了.

先看看老师的代码

#include <iostream>
using namespace std;
/*
*思路:
* 1. 分别求出每一个日期与0000年0月1日距离的天数
* 2. 两个距离天数相减即可得到两个日期相差的天数
*/
//平年从1月到n月的天数
int mon[12] = { 0,31,59,90,120,151,181,212,243,273,304,334 };
//给出年月日,计算距离0000年0月1日的天数和
int CountDay(int y, int m, int d)
{
  // 计算0-y年的天数
  int yearDay = y * 365 + y / 4 - y / 100 + y / 400;
  // 计算到0-m月的天数
  int monthDay = mon[m - 1];
  if (m > 2 && ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0))
    monthDay += 1;
  return yearDay + monthDay + d;
}
int main()
{
  int year1, month1, day1;
  scanf("%4d%2d%2d", &year1, &month1, &day1);
  int n1 = CountDay(year1, month1, day1);
  int year2, month2, day2;
  scanf("%4d%2d%2d", &year2, &month2, &day2);
  int n2 = CountDay(year2, month2, day2);
  cout << abs(n1 - n2) + 1 << endl;//abs返回n1和n2相减后的绝对值
}

主要是CountDay()函数的实现非常的棒.主要是int yearDay = y * 365 + y / 4 - y / 100 + y / 400;年的计算非常棒,我们来看看.


我们就以2000这个来讲述把我们先得到所有普通的年的天数,再算闰年情况.


闰年判断条件如下:


能被4整除却不能被100整除或能被400整除的年份就是闰年!


我们先得到能被4整除的数+ y / 4


再减去能被100整除的数- y / 100


再得到能被400整除的数+ y / 400


最后就是我们0~y年的天数总和了.


其他部分的讲解放在注释中了.


相关文章
|
存储 安全 算法
3.【Elasticsearch】Elasticsearch从入门到放弃-权重及打分
【Elasticsearch】Elasticsearch从入门到放弃-权重及打分
3.【Elasticsearch】Elasticsearch从入门到放弃-权重及打分
|
2月前
|
人工智能 移动开发 小程序
市面上的小程序平台对比
市面上的小程序平台对比
761 128
|
2月前
|
人工智能 JSON 监控
三步构建AI评估体系:从解决“幻觉”到实现高效监控
AI时代,评估成关键技能。通过错误分析、归类量化与自动化监控,系统化改进AI应用,应对幻觉等问题。Anthropic与OpenAI均强调:评估是产品迭代的核心,数据驱动优于直觉,让AI真正服务于目标。
294 8
|
7月前
|
存储 前端开发 搜索推荐
内容,内容资产,以及内容即服务
内容是指在媒体、平台或者其他载体上所呈现的信息、文章、图片、视频、音频等形式的表达。内容可以是有关某个特定主题或领域的知识、观点、故事、娱乐等,通过文字、图像、声音等方式传达给用户或观众。在互联网时代,内容的重要性越来越突出,各种网站、应用和社交媒体平台都以提供优质内容为目标,吸引用户关注和参与。
388 3
|
3月前
|
监控 Cloud Native Java
GraalVM 原生镜像技术详解与实践指南
本文档全面介绍 GraalVM 原生镜像技术的核心概念、架构设计和实践应用。作为革命性的 Java 运行时技术,GraalVM 原生镜像通过提前编译(AOT)将 Java 应用程序编译为本地可执行文件,显著提升了启动性能和资源利用率。本文将深入探讨其工作原理、构建流程、性能优化以及与云原生环境的集成,帮助开发者构建新一代高性能 Java 应用。
305 0
|
人工智能 Serverless API
云原生应用开发平台CAP评测
CAP(Cloud Application Platform)是阿里云提供的一站式应用开发及管理平台,集成了Serverless计算、AI应用模板、先进开发者工具和企业级应用管理功能。本文结合官方文档与实际操作,全面评测了CAP的产品优势、实际操作体验及性能表现,展示了其在降低成本、提高开发效率和灵活性方面的卓越能力。
抖音快手小红书养号脚本,全自动刷视频养号插件,自动看视频看广告软件
这是一款用于抖音账号自动养号的脚本源码,可实现自动化操作,如搜索、关注和随机观看视频等功能。通过界面设置延迟时间和操作次数
|
11月前
|
监控 安全 网络协议
计算机端口:网络通信的桥梁
计算机端口是网络通信的逻辑通道,支持数据传输和服务识别。本文介绍端口定义、分类(知名、注册、动态端口)、作用及管理方法,涵盖常用知名端口如HTTP(80)、HTTPS(443)等,并强调端口安全配置的重要性,帮助读者全面理解这一关键组件。
943 6
|
存储 安全 数据安全/隐私保护
深入探索iOS与Android的隐私保护机制
在数字化时代,智能手机已成为我们生活中不可或缺的一部分,而随之而来的隐私安全问题也日益凸显。本文旨在对比分析iOS和Android两大操作系统在隐私保护方面的策略和技术实现,揭示它们在设计理念、权限管理、数据加密等方面的不同之处,为读者提供一个全面了解两大系统隐私保护机制的视角。
|
机器学习/深度学习 人工智能 安全
AI时代:程序员如何重塑核心竞争力
【8月更文第5天】近年来,人工智能(AI)和生成式预训练模型(AIGC)的飞速发展对软件开发行业产生了深远的影响。ChatGPT、Midjourney、Claude 等大语言模型的出现,不仅极大地提高了编程效率,还改变了程序员的工作方式。随着AI辅助编程工具的日益普及,程序员们面临着前所未有的机遇与挑战。本文旨在探讨在AI时代,程序员应如何调整自己的职业路径和发展策略,以保持和提升自身的竞争力。
1213 0