计算两个日期之间相差的天数的四种方法
计算两个日期之间相差的天数的四种方法
第一种:时间戳的方式,计算两个日期的时间戳的差,再除当天的毫秒数即可得到相差的天数。
public static void main(String[] args) {DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");try {Date star = dft.parse("2020-02-03");//开始时间Date endDay=dft.parse("2025-03-02");//结束时间Long starTime=star.getTime();Long endTime=endDay.getTime();Long num=endTime-starTime;//时间戳相差的毫秒数System.out.println("相差天数为:"+num/24/60/60/1000);//除以一天的毫秒数} catch (ParseException e) {e.printStackTrace();}}
第二种:试用util包的Calendar类,每次增加一天,知道和结束时间相等的时候。
public static void main(String[] args) {DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");try {Date star = dft.parse("2020-02-03");//开始时间Date endDay=dft.parse("2025-03-02");//结束时间Date nextDay=star;int i=0;while(nextDay.before(endDay)){//当明天不在结束时间之前是终止循环Calendar cld = Calendar.getInstance();cld.setTime(star);cld.add(Calendar.DATE, 1);star = cld.getTime();//获得下一天日期字符串nextDay = star; i++;}System.out.println("相差天数为:"+i);} catch (ParseException e) {e.printStackTrace();}}
第三种:开始结束时间拆分为年月日,循环计算每年的天数和月日的天数,逻辑相加减。
public static void main(String[] args) {String star="2020-02-03";String end="2025-03-02";String[] star1=star.split("-");String[] end1=end.split("-");int days=0;if(Integer.parseInt(star1[0])<Integer.parseInt(end1[0])){for(int i=Integer.parseInt(star1[0]);i<Integer.parseInt(end1[0]);i++){//计算是否是瑞年if(i%4==0&&i%100!=0||i%400==0){days+=366;}else{days+=365;}}}//得到开始那一年已过去的日期int starday=days(star1[0],star1[1],star1[2]);//得到结束那一年已过去的日期int endday=days(end1[0],end1[1],end1[2]);//减去开始那一年已过去的日期,加上结束那一年已过去的日期days=days-starday+endday;System.out.println("相差的天数:"+days);}public static int days(String year,String month,String day){int days=0;int nowyear=Integer.parseInt(year);int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};int[] monthday1={0,31,29,31,30,31,30,31,31,30,31,30,31};boolean flag=true;if(nowyear%4==0&&nowyear%100!=0||nowyear%400==0){}else{flag=false;}for(int i=0;i<Integer.parseInt(month);i++){if(flag){days+=monthday1[i];}else{days+=monthday[i];}}days+=Integer.parseInt(day);return days;}
第四种:以类的方式,计算给定日期到0001-01-01的总天数,再以两个日期的天数作差得到相差天数。
int y;int m;int d;public test2(int y,int m,int d ){this.y=y;this.m=m;this.d=d;}public int sum(test2 d){int day=0;int[] x={0,31,28,31,30,31,30,31,31,30,31,30,31};for(int i=1;i<d.y;i++){if(i%4==0&& i%100!=0 || i%400==0){day+=366;}else{day+=365;}}if(d.y%4==0&& d.y%100!=0 || d.y%400==0){x[2]=29;}for(int i=1;i<d.m;i++){day+=x[i]; }day+=d.d;System.out.println(day);return day;}public int DiffDays(test2 d){//计算两个日期之间的相距天数的成员方法 int s1=sum(this);int s2=sum(d);if(s1>s2){return s1-s2;}else{return s2-s1;}}public static void main(String args[]){ int a,b,c; test2 d1,d2; try{ d1=new test2(2020,02,03); d2=new test2(2025,03,02); System.out.println("相差的天数:"+d1.DiffDays(d2)); }catch(Exception e){ System.out.println("error"); } }
相关文章:
计算两个日期之间相差的天数的四种方法
计算两个日期之间相差的天数的四种方法 第一种:时间戳的方式,计算两个日期的时间戳的差,再除当天的毫秒数即可得到相差的天数。 public static void main(String[] args) {DateFormat dft new SimpleDateFormat("yyyy-MM-dd");t…...
【leetcode面试经典150题】42. 有效的字母异位词(C++)
【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…...
Windows 2003 R2与Windows 2022建立域信任报错:本地安全机构无法跟域控制器获得RPC连接。请检查名称是否可以解析,服务器是否可用。
在Windows Server 2003 R2与Windows Server 2022之间建立域信任时遇到“本地安全机构无法与域控制器获得RPC连接”的错误,可能是由于以下几种原因: DNS 解析问题: 确保源域和目标域的DNS配置正确,能够互相解析对方的域名和IP地址。…...
UE5、CesiumForUnreal实现加载建筑轮廓GeoJson数据生成白模功能
1.实现目标 在UE5.3中,通过加载本地建筑边界轮廓面GeoJson数据,获取底面轮廓和楼高数据,拉伸生成白模,并支持点选高亮。为防止阻塞Game线程,使用了异步任务进行优化,GIF动图如下所示: 其中建筑数量:128871,顶点索引数量:6695748,三角面数量:2231916,顶点数量:165…...
JavaGUI编程
目录 GUI概念 Swing概念 组件 容器组件 窗口(JFrame) 代码 运行 面板(JPanel) 代码 运行 布局管理器 FlowLayout 代码 运行 BorderLayout 代码 运行 GridLayout 代码 运行 常用组件 标签(JLabel) 代码 运…...
Nginx 基础应用实战 03 基于反向代理的负载均衡、https配置
Nginx 基础应用实战 03 反向代理 proxy_pass http://baidu.com; location /mashibing {proxy_pass http://mashibing.com/;}基于反向代理的负载均衡 upstream httpd {server 192.168.43.152:80;server 192.168.43.153:80; }weight(权重) 指定轮询几率,weight和访…...
[图解]DDD领域驱动设计伪创新-聚合根02
0 00:00:04,940 --> 00:00:06,993 在领域驱动设计之前 1 00:00:06,993 --> 00:00:09,503 的软件开发书籍里面 2 00:00:09,503 --> 00:00:12,470 并没有出现聚合根这样的说法 3 00:00:13,000 --> 00:00:14,840 大家可以去找一下 4 00:00:15,120 --> 00:00:15…...
《QT实用小工具·二十》存款/贷款计算器
1、概述 源码放在文章末尾 该项目实现了用于存款和贷款的计算器的功能,如下图所示: 项目部分代码如下: #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJ…...
hbase基础shell用法
HBase中用create命令创建表,具体如下: create student,Sname,Ssex,Sage,Sdept,course 此时,即创建了一个“student”表,属性有:Sname,Ssex,Sage,Sdept,course。因为HBase的表中会有一个系统默认的属性作为行键&#x…...
ElasticSearch 的 BoolQueryBuilder 使用
ElasticSearch的BoolQueryBuilder定义: A Query that matches documents matching boolean combinations of other queries import org.elasticsearch.index.query.QueryBuilders;BoolQueryBuilder boolQueryBuilder QueryBuilders.boolQuery(); for (String wor…...
[C++/Linux] 网络I/O处理
引言:网络数据能够正常到达用户并且被接收是进行网络传输的根本目的,网络传输的数据发送和接收有多种方案,本文章就对通过向量接收和发送等数据传输方式,并且对多种I/O模型进详细分析介绍。 目录 一.I/O函数 1.1 recv和send rec…...
HarmonyOS4 页面路由
Index.ets: import router from ohos.routerclass RouterInfo {// 页面路径url: string// 页面标题title: stringconstructor(url: string, title: string) {this.url urlthis.title title} }Entry // 入口組件 Component struct Index {State message: string 页面列表// …...
ShardingSphere再回首
概念: 连接:通过协议 方言及库存储的适配,连接数据和应用,关注多模数据苦之间的合作 增量:抓取库入口流量题提供重定向, 流量变形(加密脱敏)/鉴权/治理(熔断限流)/分析等 可插拔:微内核 DDL:cr…...
第七篇:3.6 其他评估考虑/4.审计指南/5. 通用报告规范/6.披露指南、参考标准及其他 - IAB/MRC及《增强现实广告效果测量指南1.0》
翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效果测量定义和其他矩阵之- 3.1 广告印象(AD Impression)第三篇广告效果测量定义和其他矩阵之- 3.2 可见性 (Viewability)第四篇 …...
函数、指针和数组的相互运用(C语言)
1、函数指针数组 含义:数组的每个元素都是函数指针类型.eg: (此代码链接:http://t.csdnimg.cn/ClJmb.也可以在我发布博客中找到) 2、指向函数指针数组的指针 1、引入 3、回调函数 1、含义:就是一个通过…...
.Net Core/.Net 6/.Net 8,一个简易的消息队列
.Net Core/.Net 6/.Net 8,一个简易的消息队列 身份验证接口身份验证接口实现program.cs通过api调用 做着玩的, 只实现了消息入队出队功能,没有持久化,也没有其它任何高级功能 直接上代码 public class AMQBase//:ISingleton {/// <summary…...
OpenHarmony4.0分布式任务调度浅析
1 概述 OpenHarmony 分布式任务调度是一种基于分布式软总线、分布式数据管理、分布式 Profile 等技术特性的任务调度方式。它通过构建一种统一的分布式服务管理机制,包括服务发现、同步、注册和调用等环节,实现了对跨设备的应用进行远程启动、远程调用、…...
element-ui backtop 组件源码分享
今日简单分享 backtop 组件的源码实现,从以下三个方面: 1、backtop 组件页面结构 2、backtop 组件属性 3、backtop 组件事件 一、backtop 组件页面结构 二、backtop 组件属性 2.1 target 属性,触发滚动的对象,类型 string&am…...
MongoDB快照(LVM)业务场景应用实战
MongoDB和LVM快照概述 MongoDB的重要性:MongoDB支持的灵活的文档模型,使其成为处理大量分散数据的理想选择,特别是在需要快速迭代和频繁更改数据结构的应用中。 LVM(逻辑卷管理)快照技术基本概念:LVM允许…...
3D开发工具HOOPS:推动汽车行业CAD可视化发展
在最近的行业对话中,Tech Soft 3D(HOOPS厂商)的Jonathan Girroir和Actify的Peter West探讨了CAD可视化在当代企业中的重要性和挑战。作为CAD可视化领域的佼佼者,Actify通过其广受欢迎的Spinfire应用,赋能了全球40多个国…...
高效资源下载全攻略:多平台资源获取工具使用指南
高效资源下载全攻略:多平台资源获取工具使用指南 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcode.com/GitH…...
Qwen3-TTS-12Hz-1.7B-VoiceDesign实操手册:语音质量评估指标与主观打分
Qwen3-TTS-12Hz-1.7B-VoiceDesign实操手册:语音质量评估指标与主观打分 你辛辛苦苦用Qwen3-TTS生成了几段语音,听起来感觉还不错,但心里总有点没底——这声音到底算好还是不好?有没有一个客观的标准来衡量?如果让你给…...
AD23导出Gerber文件保姆级教程:从PCB到嘉立创下单,新手避坑指南
AD23导出Gerber文件全流程实战:从设计检查到嘉立创安全下单 第一次将精心设计的PCB转化为可生产的Gerber文件,就像新手司机首次独立上路——每个操作都可能隐藏着意想不到的陷阱。作为使用Altium Designer 23(AD23)的设计师&…...
Qwen2.5-VL-7B-Instruct详细步骤:GPTQ量化模型加载与推理加速技巧
Qwen2.5-VL-7B-Instruct详细步骤:GPTQ量化模型加载与推理加速技巧 1. 项目概述 Qwen2.5-VL-7B-Instruct是一款强大的多模态视觉-语言模型,能够同时处理图像和文本输入,生成高质量的响应。本指南将详细介绍如何通过GPTQ量化技术来优化模型加…...
OpenClaw轻量化方案实测:nanobot镜像性能与成本分析
OpenClaw轻量化方案实测:nanobot镜像性能与成本分析 1. 为什么需要轻量化OpenClaw方案 第一次听说OpenClaw时,我就被它的自动化能力吸引了——能让AI像人类一样操作我的电脑,完成各种重复性工作。但当我真正尝试在本地部署标准版OpenClaw时…...
用Python处理全球植被数据?手把手教你将BEPS模型的.img文件转成GeoTIFF
从.img到GeoTIFF:Python生态数据处理实战指南 引言:当生态学遇上数据科学 在生态学研究领域,BEPS模型生成的全球植被生产力数据(GPP/NEP/NPP)是理解碳循环和生态系统功能的重要基础。然而,许多研究者第一次…...
从“三次握手”到文件落地:用Wireshark抓包带你彻底搞懂C++ Socket文件传输全过程
从“三次握手”到文件落地:用Wireshark抓包带你彻底搞懂C Socket文件传输全过程 当你在浏览器下载文件时,是否好奇过数据是如何跨越网络准确无误地到达你的电脑?本文将带你用C实现一个完整的TCP文件传输程序,并通过Wireshark抓包工…...
新手必看:Carsim与Simulink联合仿真搭建AEB系统的5个关键步骤
从零搭建AEB系统:Carsim与Simulink联合仿真实战指南 在自动驾驶技术快速发展的今天,自动紧急制动系统(AEB)已成为车辆安全领域的重要研究方向。对于车辆工程专业的学生和自动驾驶初学者而言,掌握Carsim与Simulink的联合…...
在Windows和RV1126上部署ONNX肺部分割模型:一份OpenCV DNN与RKNN的完整对比实践
跨平台肺部分割模型部署实战:OpenCV DNN与RKNN技术选型指南 当医疗影像分析遇上边缘计算,开发者们常常面临一个关键抉择:如何在保证精度的前提下,将训练好的深度学习模型高效部署到不同计算平台?本文将以肺部分割模型为…...
QLVideo:macOS视频管理效率提升的完整解决方案
QLVideo:macOS视频管理效率提升的完整解决方案 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://gitcode.com/g…...
