【Leetcode刷题】1360. 日期之间隔几天

1360. 日期之间隔几天

  • 简单

请你编写一个程序来计算两个日期之间隔了多少天。

日期以字符串形式给出,格式为 YYYY-MM-DD,如示例所示。

示例 1:

输入:date1 = “2019-06-29”, date2 = “2019-06-30”
输出:1
示例 2:

输入:date1 = “2020-01-15”, date2 = “2019-12-31”
输出:15

提示:

给定的日期是 1971 年到 2100 年之间的有效日期。

//利用前缀和的思想,把1971到date1的天数与1971到date2的天数作差取绝对值。
class Solution {
public:int daysBetweenDates(string date1, string date2) {return abs(get(date1) - get(date2));}bool isleap(int year) {return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;//能被4整除但不能被100整除;//能被400整除。}int m_days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int get(string date) {int year, month, day;sscanf(date.c_str(), "%d-%d-%d", &year, &month, &day);int days = 0;for (int i = 1971; i < year; i++) days += 365 + isleap(i);for (int i = 1; i < month; i++) {if (i == 2) days += 28 + isleap(year);else days += m_days[i];}return days + day;}
};

sscanf

std::string data;
sscanf(date.c_str(), "%d-%d-%d", &year, &month, &day);
  • 这行代码是使用C/C++中的sscanf函数来将字符串date按照指定的格式"%d-%d-%d"解析,并将解析后的整数值分别存储在year、month和day这三个变量中。

假设date是一个字符串,例如"2022-10-15",sscanf函数会按照"%d-%d-%d"的格式解析该字符串,将第一个整数值解析为year变量的值,第二个整数值解析为month变量的值,第三个整数值解析为day变量的值。

在这段代码中,如果date的格式与"%d-%d-%d"匹配成功,year将被赋值为2022,month将被赋值为10,day将被赋值为15。

这种操作常用于从字符串中提取特定格式的数据,特别是处理日期格式时非常有用。

date.c_str()

date.c_str() 是C++中的字符串类(如std::string)提供的一个成员函数,用于返回一个指向以空字符结尾的字符数组(C风格字符串)的指针。这个函数通常用于将C++的std::string对象转换为C风格的字符串,以便与使用C风格字符串的函数进行交互。

当你调用c_str() 方法时,它会返回一个指向字符串数据的指针,该字符串数据以空字符(‘\0’)结尾,这使得它符合C语言要求的字符串表示形式。

例如,如果有一个std::string对象str,你可以使用str.c_str()来获取一个指向该字符串数据的C风格字符串。

这种方法在需要将C++字符串传递给期望C风格字符串的函数时非常有用,因为许多C库函数或API都期望以C风格字符串作为参数。

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

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

相关文章

博客杂谈---程序员如何选择职业赛道?

程序员的职业赛道就像是一座迷宫&#xff0c;有前端的美丽花园&#xff0c;后端的黑暗洞穴&#xff0c;还有数据科学的神秘密室。你准备好探索这个充满挑战和机遇的迷宫了吗&#xff1f;快来了解如何选择职业赛道吧&#xff01; &#xff08;1&#xff09;考虑因素 话题虽然指…

Web题记

[CISCN 2019华北Day2]Web1 告诉我们想要的东西在flag表和flag字段&#xff0c;那应该是sql注入&#xff0c;先试试 试了一些发现会被检查到&#xff0c;随便传数字 除了1和2有返回结果&#xff0c;其余的都报错&#xff0c;应该是数字型注入&#xff0c;抓包看看过滤了哪些 这个…

在DeepLn环境中安装VLLM与ChatGLM3

DeepLn | 智慧算力触手可及是一个挺便宜的算力租用平台&#xff0c;里面有大量的显卡可以租用。唯一美中不足的是&#xff0c;提供的pytorch版本低&#xff0c;只支持到2.01&#xff0c;为了匹配vllm&#xff0c;需要手动安装指定版本的pytorch。 vllm介绍 总体而言&#xff0…

如何关闭vscode灰色代码提示

vscode编辑rust代码时&#xff0c;rust-analyze插件会默认给代码添加一些提示&#xff08;灰色代码&#xff09;&#xff0c;这部分代码 不会保存到文件&#xff0c;仅仅是为了你方便看各种变量的定义等。 但有时会觉得代码很乱&#xff0c;所以按以下方法可以把他隐藏。 1&am…

接收端编程、UDP编程练习、wireshrak抓包工具、UDP包头

我要成为嵌入式高手之3月6日Linux高编第十六天&#xff01;&#xff01; ———————————————————————————— 学习笔记 接收端 recvfrom #include <sys/types.h> #include <sys/socket.h> ssize_t recvfrom(int sockfd, void *buf, si…

JVM(Java虚拟机)概述

1. JVM的定义和作用 JVM&#xff08;Java Virtual Machine&#xff09;是一个能够运行Java字节码的虚拟计算机。它是Java平台的核心组成部分&#xff0c;负责执行编译后的Java程序&#xff0c;提供跨平台运行的能力。JVM使得Java程序可以在任何安装了JVM的操作系统上运行&#…

【50天50个项目】旋转导航页面

实现效果&#xff1a; HTML <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><link rel"stylesheet&…

asp飞机订票-57-(说明+代码)

演示查看 http://pc.3q2008.Com/3q2008_Com/hkdp 目 录 1&#xff0e; 系统规划 3 1&#xff0e;1 行业背景 3 1&#xff0e;2 行业现状 3 1.2.1用户注册 3 1.2.2航班查询 3 1.2.3在线订票 3 1.2.4在线支付 3 1.2.5电子客票 4 1.2.6其它辅助产品与服务 4 1&#xff0e;3 需求…

[Mac软件]Adobe Illustrator 2024 28.3 intel/M1/M2/M3矢量图制作软件

应用介绍 Adobe Illustrator 是行业标准的矢量图形应用程序&#xff0c;可以为印刷、网络、视频和移动设备创建logos、图标、绘图、排版和插图。数以百万计的设计师和艺术家使用Illustrator CC创作&#xff0c;从网页图标和产品包装到书籍插图和广告牌。 绘制任意大小的标志 拥…

Timus#1005

C【动态规划】 #include<iostream> #include<vector> using namespace std; int main() {int n;cin >> n;vector<int> dp(100000 * 20);vector<int> a(n);int ans 0, cur 0;for (int i 0; i < n; i){cin >> a[i];ans a[i];}int sum…

C++ 求不同数组的最大值

编写一个名为max()的函数&#xff0c;用于求包含n个元素的数组的最大值&#xff0c;要求通过函数重载能求int、double、char、string的最大值。 函数接口定义&#xff1a; int max(int *a, int n) ; double max(double *a, int n) ; char max(char *a, int n); string max(str…

探索直播美颜SDK背后的深度学习算法:智能化美肤与特效实现

美颜SDK背后的技术原理和深度学习算法近期很多读者向小编提问。今天&#xff0c;我将为大家深入讲解直播美颜SDK背后的深度学习算法&#xff0c;以及智能化美肤与特效实现的原理与应用。 一、美颜SDK的背后&#xff1a;深度学习算法 美颜SDK是一种集成了多种美颜功能的软件开…

【APB协议 UVM_Sequencer Driver Monitor_2024.03.04】

apb协议 写时序 地址、写信号、PSEL、写数据信号同时发生变化&#xff0c;即传输的第一个时钟被称为SETUP周期。在下个时钟上升沿,PENABLE信号拉高&#xff0c;表示ENABLE周期&#xff0c;在该周期内&#xff0c;数据、地址以及控制信号都必须保持有效。整个写传输在这个周期…

分享几个Google Chrome谷歌浏览器历史版本下载网站

使用selenium模块的时候&#xff0c;从官网下载的谷歌浏览器版本太高&#xff0c;驱动不支持&#xff0c;所以需要使用历史的谷歌浏览器版本 &#xff0c;这里备份一下以防找不到了。 驱动下载地址&#xff1a;https://registry.npmmirror.com/binary.html?pathchromedriver 文…

WiFi贴码推广能赚钱吗?掌握WiFi贴码推广技巧

“WiFi贴码推广能赚钱吗”是当前很多创业者关注的一个话题&#xff0c;WiFi贴码推广这一新兴的商业模式&#xff0c;是指商家在其门店或者特定场所提供免费WiFi&#xff0c;不需要输入密码wifi二维码即可连接&#xff0c;连接后合作商就会获得一定的收益。这种模式既方便了用户…

【Node.js从基础到高级运用】七、基本的网络编程

基本的网络编程 在这一节中&#xff0c;我们将介绍 Node.js 在网络编程方面的基础&#xff0c;特别是如何使用 Node.js 创建一个 HTTP 服务器。这是构建 Web 应用和服务的核心技能。 创建 HTTP 服务器 Node.js 的 http 模块提供了创建 HTTP 服务器和客户端的能力。以下是创建…

白酒:陈酿过程中的理化变化与香味成分的转化

在豪迈白酒的陈酿过程中&#xff0c;理化变化和香味成分的转化是形成与众不同风味和品质的重要环节。云仓酒庄深入了解和掌握陈酿过程中的理化变化规律&#xff0c;以及香味成分的转化机制&#xff0c;通过科学的方法和精细的管理&#xff0c;提升豪迈白酒的品质和口感。 首先&…

CMake:编写 CMakeLists 文件

文章目录 编辑 CMakeLists 文件CMake 语言注释变量变量范围命令基本命令流控制条件语句循环构造过程定义正则表达式高级命令 本章将介绍编写有效 CMakeList 的基础知识 文件。它将涵盖基本命令和问题 您将需要处理大多数项目。虽然 CMake 可以处理极其复杂的问题 项目&#xff…

Rust 语言的 println! 宏的格式占位符

一、占位符 println! 宏的占位符主要基于 Rust 的格式化语法&#xff0c;它支持多种占位符格式来插入和格式化不同的值。除了 {} 和 {:?} 之外&#xff0c;还有其他几种形式&#xff1a; 基本占位符 {}&#xff1a;用于插入任何实现了 Display trait 的类型的值。 调试占位符…

PaddlePaddle框架安装

提示&#xff1a;可在python环境中进行安装&#xff0c;避免环境污染&#xff0c;创建命令conda create -n xxx_name python3.9,激活conda activate xxx_name 第一步&#xff1a;查看计算机平台版本 在窗口输入查看命令&#xff0c;查看CUDA的版本 nvidia-smi 二、根据以下条件…