Java计算时间差,距结束还有几天几小时几分钟

文章目录

  • 1、写法
  • 2、备份
  • 3、LocalDate、LocalDateTime、Date、String互转

1、写法

//静态方法,传入年月日时分秒
LocalDateTime startTime = LocalDateTime.of(2023, 11, 22, 15, 09, 59);
LocalDateTime endTime = LocalDateTime.of(2023, 11, 30, 0, 0, 0);
//计算差值
Duration duration = Duration.between(startTime, endTime);
//差几天
long days = duration.toDays();
//差多少小时
long hours = duration.toHours();
//分钟
long minutes = duration.toMinutes();
//秒
long seconds = duration.toSeconds();
//毫秒
long millis = duration.toMillis();
//纳秒
long nanos = duration.toNanos();

注意:

  • 上面的toHours()方法返回的是时间差全部换算为小时的数值,而不时去掉整天以后的整小时,想获得后者,应该调用toHoursPart()方法
  • 计算结果可能为负值

PS:上面用到的LocalDateTime的of方法源码:

在这里插入图片描述

2、备份

备份下需求里写的一部分代码,以后好直接copy。需求部分UI:

在这里插入图片描述

该字段的后端处理:

/*** 计算时间差* 传入LocalDate,即年月日* 返回距离当前还有几天几小时几分钟* 结果为负数时,返回已过期
*/
public static String calcTimeliness(LocalDate timeliness) {//年月日转年月日0时0分0秒LocalDateTime timeDeadLine = timeliness.atTime(0, 0, 0);//起始时间LocalDateTime now = LocalDateTime.now();Duration duration = Duration.between(now, timeDeadLine);long days = duration.toDays();int hours = duration.toHoursPart();long minutes = duration.toMinutesPart();if (days < 0 || hours < 0 || minutes < 0) {return StatusEnum.EXPIRED.getName();  //已过期}return days + "天" + hours + "小时" + minutes + "分";}

3、LocalDate、LocalDateTime、Date、String互转

用的时候查吧,整理也没用,记不住也不用记。

  • https://blog.csdn.net/weixin_45103793/article/details/117929986

  • https://www.cnblogs.com/CF1314/p/13884530.html

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

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

相关文章

Java基层卫生健康云综合管理(云his)系统源码

云HIS&#xff08;Cloud-Based Healthcare Information System&#xff09;是基于云计算的医院健康卫生信息系统。它运用云计算、大数据、物联网等新兴信息技术&#xff0c;按照现代医疗卫生管理要求&#xff0c;在一定区域范围内以数字化形式提供医疗卫生行业数据收集、存储、…

indexedDB存储

使用 setDBData({ id: name, value: 张三, expire: new Date().getTime() 10000 }, info, infoDB) console.log(getDBData(name, info, infoDB)); 添加或更新数据 async function setDBData(data,storeName "storeName",dbName "dbName",version ) {c…

educoder中Hive综合应用案例 — 用户搜索日志分析

第1关:2018年点击量最高的10个网站域名 ---------- 禁止修改 ----------drop database if exists mydb cascade; ---------- 禁止修改 -------------------- begin ---------- ---创建mydb数据库 create database mydb;---使用mydb数据库 use mydb;---创建表db_search create…

CVE-2023-27524:Apache Superset未授权访问漏洞复现

文章目录 ​Apache Superset 未授权访问漏洞(CVE-2023-27524)复现0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.漏洞复现 0x06 修复建议 ​Apache Superset 未授权访问漏洞(CVE-2023-27524)复现 0x01 前言 免责声明&#xff1a;请勿利用文…

在线工具收集

在线工具收集 1、在线P图 https://www.photopea.com/ 一款类似于PS的在线抠图软件 ①去除图片中的文字&#xff0c;并填充背景色 第一步&#xff1a;使用矩形选中要清除的文字 第二步&#xff1a;点击编辑选择填充 第三步&#xff1a;选择内容识别&#xff0c;保留透明区域…

操作系统(七)| 设备管理-- 端口 驱动程序 基本I/O控制 磁盘I/O

文章目录 1 设备管理概述1.1 系统总线结构1.2 设备控制器通用结构1.3 I/O设备的模型 2 I/O端口2.1 寻址方式 3 驱动程序4 基本I/O控制方式4.1 程序直接控制4.2 中断I/O方式4.3 DMA方式4.4 I/O通道控制方式 5 I/O管理中的重要思想5.1 设备独立性5.2 SPOOLing技术5.3 I/O软件的多…

c语言 结构数组

为什么要使用结构数组&#xff1f; 例如有一种情况&#xff0c;我们需要存储5名学生的数据。我们可以使用下面给出的结构来存储它。 示例 #include<stdio.h> struct student { char name[20]; int id; float marks; }; void main() {struct student s1,s2,…

前端Date对象的使用锦集

Date 对象用于处理日期与时间。 创造对象 var d new Date(); var d new Date(milliseconds); // 参数为毫秒 var d new Date(dateString); var d new Date(year, month, day, hours, minutes, seconds, milliseconds);方法 getDate() 获取当前日期对象是几日(1-31) cons…

C++标准模板(STL)- 类型支持 (类型修改,添加 const 或/与 volatile 限定符到给定类型,std::add_cv)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

SAP的四种计量单位

在SAP中物料创建后&#xff0c;一旦发生业务&#xff0c;其基本计量单位便很难修改。由于单位无法满足业务要求&#xff0c;往往会要求新建一个物料替代旧物料。这时候除了要将旧物料上所有的未清业务删除外&#xff0c;还需要替换工艺与BOM中的旧物料。特别是当出现旧物料存在…

Linux学习笔记-Ubuntu下使用Crontab设置定时任务

文章目录 一、概述二、基于crontab的设置2.1 基本命令说明2.2 使用-e指令编辑命令2.2.1 进入编辑模式2.2.2 指令信息格式2.2.4 开启日志1) 修改rsyslog配置文件2) 重启rsyslog3) 查看日志 2.2.3 设置后之后重启服务 三、示例3.1 每隔一分钟往文件中日期3.2 使用-l查看任务列表3…

越南服务器租用:企业在越南办工厂的趋势与当地(ERP/OA等)系统部署的重要性

近年来&#xff0c;越南逐渐成为全球企业布局的热门目的地之一。许多企业纷纷选择在越南设立工厂&#xff0c;以利用其低廉的劳动力成本和优越的地理位置。随着企业在越南的扩张&#xff0c;对于当地部署ERP系统或OA系统等的需求也日益增长。在这种情况下&#xff0c;租用越南服…

上海亚商投顾:北证50指数持续大涨 短剧概念股再爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整&#xff0c;深成指跌超1.4%&#xff0c;创业板指跌超1.7%。北证50指数大涨超8%&#xff0c;…

ROS设置DHCP option121

配置时&#xff0c;了解格式很关键&#xff0c;16进制填写格式如下&#xff1a; 将要访问的IPV&#xff14;地址&#xff1a;192.168.100.0/24 192.168.30.254 转换为&#xff1a;掩码 目标网段 网关 0x18c0a864c0a81efe&#xff0c;0不用填写 ROS配置如下图&#xff1a; 抓…

02_使用API_String

StringBuilder StringBuilder 代表可变字符串对象&#xff0c;相对于是一个容器&#xff0c;它里面装的字符串是可以改变的&#xff0c;就是用来操作字符串的好处&#xff1a;StringBuilder 比 String 更适合做字符串的修改操作&#xff0c;效率会更高&#xff0c;代码也会更简…

MacOS “xxxxx“,已损坏,无法打开,你应该将它移到废纸篓

在这里插入图片描述 解决方案 应用程序 - 实用工具中打开终端&#xff0c;输入命令&#xff0c; sudo xattr -r -d com.apple.quarantine 然后将程序拖放至命令窗口&#xff0c;如下图&#xff1a;

22. Spring源码篇之推断构造方法

简介 很多时候我们的构造器都不止一个&#xff0c;那么spring怎么选择的呢&#xff0c;签名介绍了推断构造方法的扩展点&#xff0c;可以使用Autowired注解去选择使用哪个构造器&#xff0c;但是即使这样也有可能有多个Autowired且required为false的构造器&#xff0c;那么还是…

QLineEdit响应editingFinished实现只响应一次

QLineEdit中editingFinished槽函数会在按下enter时响应两次&#xff0c;分别是按下enter和失去焦点的时候&#xff0c;为了能让 QLineEdit只响应其中一次&#xff0c;需定义一个全局变量m_bFlagEnter保存是否enter是否按下&#xff0c;按下后&#xff0c;则在失去焦点的时候做对…

Unity发布IOS后,使用xcode打包报错:MapFileParser.sh:Permissiondenied

1.错误提示 使用xcode打包错误提示&#xff1a;/Users/mymac/Desktop/myproject/MapFileParser.sh: Permission denied 2.解决方案 打开控制台输入&#xff1a;chmod ax /Users/mymac/Desktop/myproject/MapFileParser.sh。按回车键执行&#xff0c;然后重新使用xcode发布程序…

【开源】基于JAVA的在线课程教学系统

项目编号&#xff1a; S 014 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S014&#xff0c;文末获取源码。} 项目编号&#xff1a;S014&#xff0c;文末获取源码。 目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2…