后端开发笔记20240106

文章目录

  • 写在前面
  • 时间相关的减法操作
    • 两个date日期相减获得时间差
    • lacaltime和date做差
  • sql语句,select子句当作where查询的条件

写在前面

出来创业也一年多了,感觉这一年,后端的开发荒废了很多,都快不如专注做后端开发两三年的学弟学妹们了,逼着自己开了这个专栏,让自己坚持把每天开发的收获写一写。

时间相关的减法操作

两个date日期相减获得时间差

    public static String timeDistance(Date endDate, Date startTime){long nd = 1000 * 24 * 60 * 60;long nh = 1000 * 60 * 60;long nm = 1000 * 60;// long ns = 1000;// 获得两个时间的毫秒时间差异long diff = endDate.getTime() - startTime.getTime();// 计算差多少天long day = diff / nd;// 计算差多少小时long hour = diff % nd / nh;// 计算差多少分钟long min = diff % nd % nh / nm;// 计算差多少秒//输出结果// long sec = diff % nd % nh % nm / ns;return day + "天" + hour + "小时" + min + "分钟";}

思路就是获得2个日期的毫秒差异,然后对每天的毫秒数目做除法,获得天的差距。如果对天取摩,就是相差多少小时的毫秒数,再对小时的毫秒做除法,就是相差多少小时。以此类推。就可以得到差距多少分,多少秒。然后把前面的天小时,分钟,秒 联合起来,就是2个时间的差距的字符串。

lacaltime和date做差

    public long getMinutesDifference(Date date, LocalTime localTime) {// 将Date对象转换为LocalTimeLocalTime dateLocalTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();// 计算时间差Duration duration = Duration.between(localTime, dateLocalTime);// 返回分钟差的绝对值return duration.toMinutes();}

这个案例是在考勤项目中遇到的,考勤时间是上午八点到下午20点,每天都如此,于是就用LocalTime记录的考勤规则。然后每天的实际打卡时间记录的是date,将这两个类型的数做减法,得到相差的分钟数目,根据正负,就可以得到是否迟到或者早退的情况。测试代码,如下。上面的这个函数,跟正常人的理解是一致的,如果前面的date是一个较晚的时间,返回的是正数,否则返回的是负数。一般LocalTime是考勤规则,Date是实际的打卡时间,做差,根据实际的业务去判断是否迟到早退。

    public static void main(String[] args) {
// 示例用法Date date = new Date();LocalTime localTime = LocalTime.of(20, 10);long minutesDiff = getMinutesDifference(date, localTime);System.out.println("分钟差值: " + minutesDiff);}

sql语句,select子句当作where查询的条件

    <!--  根据上班时间  查询上下班的考勤规则   2h --><select id="selectRuleByTimeAndStaffId" resultMap="AttendanceStaffScheduleItemResult">select *from attendance_staff_schedule_itemwhere schedule_id IN (select schedule_idfrom attendance_staff_schedule_itemwhere staff_id = #{staffId}and attendance_time >= DATE_SUB(#{arriveTime},INTERVAL 2 HOUR)and attendance_time <= DATE_SUB(#{arriveTime},INTERVAL -2 HOUR)and access_type = 0)</select>

这个sql将select查询的结果当作子句,传入where中作为条件。不用写多个sql语句来实现这个功能了。主要记录的就是select语句也可以配合in当作where条件中的参数。
DATE_SUB()是一个MySQL函数,用于从指定的日期或时间中减去一定的时间间隔。传入的数据如果是正数,就是增加。

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

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

相关文章

QGroundControl Qt安卓环境搭建及编译出现的问题

记录Qt 5.15.2搭建安卓环境出现的各种问题。 zipalign tool not found: D:/JavaAndroid/Android/sdk/build-tools//zipalign.exe&#xff1f; 答&#xff1a;需要将DANDROID_PLATFORM升级到已下载的版本. bin/llvm-readobj.exe: error: unknown argument ‘–libs’ 答&…

07-微服务getaway网关详解

一、初识网关 在微服务架构中&#xff0c;一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢&#xff1f;如果没有网关的存在&#xff0c;我们只能在客户端记录每个微服务的地址&#xff0c;然后分别去调用。这样的话会产生很多问题&#xff0c;例…

数据可视化|Python之Pyecharts将“爬虫数据”绘制饼状图

前言 本文是该专栏的第40篇,后面会持续分享python数据分析的干货知识,记得关注。 在项目中,可能有些同学或多或少遇见这样的需求。将爬虫采集下来的数据,进行图像可视化处理,方便其他业务线进行数据分析处理。 而本文,笔者将以某个爬虫案例的采集数据为例子,使用Pytho…

链表的中间节点

链表的中间节点 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/middle-of-the-…

【1】SM4 CBC-MAC 机制

0x01 题目 MSG1: e55e3e24a3ae7797808fdca05a16ac15eb5fa2e6185c23a814a35ba32b4637c2 MAC1: 0712c867aa6ec7c1bb2b66312367b2c8 ----------------------------------------------------- MSG2: d8d94f33797e1f41cab9217793b2d0f02b93d46c2ead104dce4bfec453767719 MAC2: 4366…

【Java】WGS84转2000国家大地坐标系(CGCS2000)

引用Eclipse在github上的一个开源项目https://github.com/locationtech/proj4j 1. pom.xml引入依赖 <!-- https://mvnrepository.com/artifact/org.locationtech.proj4j/proj4j --> <dependency><groupId>org.locationtech.proj4j</groupId><arti…

Vue3的使用

一 Vue3的变化 1.性能的提升 打包大小减少41% 初次渲染快55%, 更新渲染快133% 内存减少54% 2.源码的升级 使用Proxy代替defineProperty实现响应式 重写虚拟DOM的实现和Tree-Shaking 3.拥抱TypeScript Vue3可以更好的支持TypeScript 4.新的特性 Composition API&#…

【UE 材质】简单的纹理失真、溶解效果

目录 1. 失真效果 2. 溶解效果 3. 失真溶解 我们一开始有这样一个纹理 1. 失真效果 其中纹理节点“DistortTexture”的纹理为引擎自带的纹理“T_Noise01”&#xff0c;我们可以通过控制参数“失真度”来控制纹理的失真程度 2. 溶解效果 3. 失真溶解

GoZero微服务微服务个人探究之路(五)部署微服务到k8s的一种最佳实践

需做工作 在每个微服务下面新建一个Dockerfile文件根据Dockerfile文件使用docker build指令&#xff0c;打包为具体的镜像&#xff08;根据自己需求选择&#xff09;将docker镜像上传到私人docker仓库或者是公共仓库&#xff0c;如果没有上传&#xff0c;则自动保存在本地编写…

openssl3.2 - 官方demo学习 - guide - quic-client-block.c

文章目录 openssl3.2 - 官方demo学习 - guide - quic-client-block.c概述笔记END openssl3.2 - 官方demo学习 - guide - quic-client-block.c 概述 在程序运行时, 要指定环境变量 SSL_CERT_FILErootcert.pem, 同时将rootcert.pem拷贝到工程目录下, 否则不好使 吐槽啊, 为啥不…

Centos7 安装Jenkins2.440

首先&#xff0c;确保您的CentOS 7系统已经安装了Java 11。您可以使用以下命令来安装Java 11&#xff1a; bash 从官网下载jdk11&#xff0c;例如&#xff1a;jdk-11.0.21_linux-x64_bin.tar.gz&#xff0c;使用命令tar -zxvf jdk-11.0.21_linux-x64_bin.tar.gz -C / 直接解压…

kafka简单介绍和代码示例

“这是一篇理论文章&#xff0c;给大家讲一讲kafka” 简介 在大数据领域开发者常常会听到MQ这个术语&#xff0c;该术语便是消息队列的意思&#xff0c; Kafka是分布式的发布—订阅消息系统。它最初由LinkedIn(领英)公司发布&#xff0c;使用Scala语言编写&#xff0c;与2010年…

HTML---Jquery选择器

文章目录 目录 文章目录 本章目标 一.Jquery选择器概述 二.Jquery选择器分类 基本选择器 层次选择器 属性选择器 三.基本过滤选择器 练习 本章目标 会使用基本选择器获取元素会使用层次选择器获取元素会使用属性选择器获取元素会使用过滤选择器获取元素 …

Mysql单行函数

文章目录 数值函数基本函数角度与弧度转化三角函数指数与对数进制间转换 字符串函数日期和时间函数获取日期、时间日期与时间戳的转换获取月份、星期、星期数、天数等函数日期的操作函数 时间和秒钟转换的函数计算日期和时间的函数日期的格式化与解析 流程控制函数加密与解密函…

SQL Server 数据类型

文章目录 一、文本类型&#xff08;字母、符号或数字字符的组合&#xff09;二、整数类型三、精确数字类型四、近似数字&#xff08;浮点&#xff09;类型五、日期类型六、货币类型七、位类型八、二进制类型 一、文本类型&#xff08;字母、符号或数字字符的组合&#xff09; 在…

【物联网】物联网设备和应用程序涉及协议的概述

物联网设备和应用程序涉及协议的概述。帮助澄清IoT层技术栈和头对头比较。 物联网涵盖了广泛的行业和用例&#xff0c;从单一受限制的设备扩展到大量跨平台部署嵌入式技术和实时连接的云系统。 将它们捆绑在一起是许多传统和新兴的通信协议&#xff0c;允许设备和服务器以新的…

奥伦德光电耦合器5G通信领域及其相关领域推荐

光电耦合器是以光为媒介传输电信号的一种电-光-电转换器件。由于该器件使用寿命长、工作温度范围宽&#xff0c;所以在过程控制、工业通信、家用电器、医疗设备、通信设备、计算机以及精密仪器等方面有着广泛应用在当前工艺技术持续发展与提升的过程中&#xff0c;其工作速度、…

java常见面试题:如何使用Java进行MyBatis框架开发?

MyBatis是一个优秀的持久层框架&#xff0c;它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息&#xff0c;将接口和Java的POJOs(Plain Old Java Objects,普通的Java…

新能源汽车智慧充电桩方案:如何实现充电停车智慧化管理?

一、方案概述 基于新能源汽车充电桩的监管运营等需求&#xff0c;安徽旭帆科技携手合作伙伴触角云共同打造“智能充电设备&#xff0b;云平台&#xff0b;APP小程序”一体化完整的解决方案&#xff0c;为充电桩车位场所提供精细化管理车位的解决办法&#xff0c;解决燃油车恶意…

用时序数据库 DolphinDB 搭建一套轻量化工业试验平台解决方案

DolphinDB 作为集成了高容量高速度流数据分析系统和强大编程语言的一站式解决方案&#xff0c;旨在为用户提供快速存储、检索、分析和计算庞大的结构化数据服务。本文将提供一个轻量化的工业试验平台数据处理解决方案&#xff0c;快速简单地实现海量数据采集、存储、处理和分析…