java基础操作5——java自定义获取任意年、月、日的起始和结束时间
在实际项目开发过程中,获取任意时间的起始和结束时间是常用操作,尤其对于统计业务来说,更是必要操作,理解了时间自定义的规律,对于开发人员的效率提升是大有裨益的。
一.获取任意年的起始和结束时间

1.获取任意年的起始时间
public static Date getDateByBeforeYear(Date today, int number) {Calendar todayEnd = Calendar.getInstance();todayEnd.setTime(today);todayEnd.set(Calendar.YEAR, todayEnd.get(Calendar.YEAR) - number);todayEnd.set(Calendar.MONTH, 0);todayEnd.set(Calendar.DAY_OF_MONTH, 1);todayEnd.set(Calendar.HOUR_OF_DAY, 0);todayEnd.set(Calendar.MINUTE, 0);todayEnd.set(Calendar.SECOND, 0);todayEnd.set(Calendar.MILLISECOND, 0);return todayEnd.getTime();
}
2.获取任意年的结束时间
public static Date getDateByAfterYearNew(Date today, int number) {Calendar todayEnd = Calendar.getInstance();todayEnd.setTime(today);todayEnd.set(Calendar.YEAR, todayEnd.get(Calendar.YEAR) - number);todayEnd.set(Calendar.MONTH, 11);todayEnd.set(Calendar.DAY_OF_MONTH, 31);todayEnd.set(Calendar.HOUR_OF_DAY, 23);todayEnd.set(Calendar.MINUTE, 59);todayEnd.set(Calendar.SECOND, 59);todayEnd.set(Calendar.MILLISECOND, 999);return todayEnd.getTime();
}
二.获取任意月的起始和结束时间

1.获取任意月的起始时间
public static Date getDateByBeforeMonth(Date today, int number) {Calendar todayEnd = Calendar.getInstance();todayEnd.setTime(today);todayEnd.set(Calendar.MONTH, todayEnd.get(Calendar.MONTH) - number);todayEnd.set(Calendar.DAY_OF_MONTH, 1);todayEnd.set(Calendar.HOUR_OF_DAY, 0);todayEnd.set(Calendar.MINUTE, 0);todayEnd.set(Calendar.SECOND, 0);todayEnd.set(Calendar.MILLISECOND, 0);return todayEnd.getTime();
}
2.获取任意月的结束时间
public static Date getDateByAfterMonthNew(Date today, int number) {Calendar todayEnd = Calendar.getInstance();todayEnd.setTime(today);todayEnd.set(Calendar.MONTH, todayEnd.get(Calendar.MONTH)-number);todayEnd.set(Calendar.DAY_OF_MONTH, 0);todayEnd.set(Calendar.HOUR_OF_DAY, 23);todayEnd.set(Calendar.MINUTE, 59);todayEnd.set(Calendar.SECOND, 59);todayEnd.set(Calendar.MILLISECOND, 999);return todayEnd.getTime();
}
三.获取任意日的起始和结束时间

1.获取任意日的起始时间
public static Date getDateByBeforeDay(Date today, int day) {Calendar todayEnd = Calendar.getInstance();todayEnd.setTime(today);todayEnd.set(Calendar.DAY_OF_MONTH, todayEnd.get(Calendar.DAY_OF_MONTH) - day);todayEnd.set(Calendar.HOUR_OF_DAY, 0);todayEnd.set(Calendar.MINUTE, 0);todayEnd.set(Calendar.SECOND, 0);todayEnd.set(Calendar.MILLISECOND, 0);return todayEnd.getTime();
}
2.获取任意日的结束时间
public static Date getDateByAfterDayNew(Date today, int day) {Calendar todayEnd = Calendar.getInstance();todayEnd.setTime(today);todayEnd.set(Calendar.DAY_OF_MONTH, todayEnd.get(Calendar.DAY_OF_MONTH) - day);todayEnd.set(Calendar.HOUR_OF_DAY, 23);todayEnd.set(Calendar.MINUTE, 59);todayEnd.set(Calendar.SECOND, 59);todayEnd.set(Calendar.MILLISECOND, 999);return todayEnd.getTime();
}
四.获取任意时的起始和结束时间

1.获取任意时的起始时间
public static Date getDateByBeforeHour(Date today, int number) {Calendar todayEnd = Calendar.getInstance();todayEnd.setTime(today);todayEnd.set(Calendar.HOUR_OF_DAY, todayEnd.get(Calendar.HOUR_OF_DAY) - number);todayEnd.set(Calendar.MINUTE, 0);todayEnd.set(Calendar.SECOND, 0);todayEnd.set(Calendar.MILLISECOND, 0);return todayEnd.getTime();
}
2.获取任意时的结束时间
public static Date getDateByAfterHourNew(Date today, int number) {Calendar todayEnd = Calendar.getInstance();todayEnd.setTime(today);todayEnd.set(Calendar.HOUR_OF_DAY, todayEnd.get(Calendar.HOUR_OF_DAY) - number);todayEnd.set(Calendar.MINUTE, 59);todayEnd.set(Calendar.SECOND, 59);todayEnd.set(Calendar.MILLISECOND, 999);return todayEnd.getTime();
}
五.获取任意时间的周信息
public static Integer getWeekOfDate(Date date) {Integer[] weekDays = {7, 1, 2, 3, 4, 5, 6};Calendar cal = Calendar.getInstance();cal.setTime(date);int w = cal.get(Calendar.DAY_OF_WEEK) - 1;if (w < 0) {w = 0;}return weekDays[w];
}
六.获取任意时间是否在时间区间内
public static boolean belongCalendar(Date queryTime, Date from, Date to) {Calendar queryInfo = Calendar.getInstance();queryInfo .setTime(queryTime);Calendar after = Calendar.getInstance();after.setTime(from);Calendar before = Calendar.getInstance();before.setTime(to);if (queryInfo.after(after) && queryInfo.before(before)) {return true;} else {return false;}
}
七.其他相关方法持续更新中
。。。
相关文章:
java基础操作5——java自定义获取任意年、月、日的起始和结束时间
在实际项目开发过程中,获取任意时间的起始和结束时间是常用操作,尤其对于统计业务来说,更是必要操作,理解了时间自定义的规律,对于开发人员的效率提升是大有裨益的。 一.获取任意年的起始和结束时间 1.获取任意年的起…...
【Java04】引用变量数组初始化的内存机制
引用类型数组指向的元素也是引用。其本质是: 由一个在栈上的引用数组变量指向一块堆内存;这块堆内存里存储的元素是引用,又分别指向其他堆内存。 class Person // Person是一个自定义的类 {public int age;puiblic double height;public vo…...
基于JSP的足球赛会管理系统
你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 个人中心 球队介绍…...
博客摘录「 AXI三种接口及DMA DDR XDMA介绍(应用于vivado中的ip调用)」2024年6月10日
关键要点: 1.AXI Stream经过协议转换可使用AXI_FULL(PS与PL间的接口,如GP、HP和ACP)。 2.传输数据类里就涉及一个握手协议,即在主从双方数据通信前,有一个握手的过程。基本内容:数据的传输源会…...
Bigtable: A Distributed Storage System for Structured Data
2003年USENIX,出自谷歌,开启分布式大数据时代的三篇论文之一,底层依赖 GFS 存储,上层供 MapReduce 查询使用 Abstract 是一种分布式结构化数据存储管理系统,存储量级是PB级别。存储的数据类型和延时要求差异都很大。…...
RAG下的prompt编写探索
针对特定领域的回答,编写抽象的prompt需要在细节和灵活性之间找到平衡。我们需要一个既能涵盖普遍步骤又能适应不同问题的框架。以下是如何在这种情况下编写抽象prompt的方法,以及适用于各种技术领域的通用策略。 一、编写抽象Prompt的通用策略 定义用户问题和背景信息: 明…...
【计算机组成原理】指令系统考研真题详解之拓展操作码!
计算机组成原理:指令系统概述与深入解析 1. 指令系统概述 计算机软硬件界面的概念 在计算机组成原理中,指令系统扮演着至关重要的角色,它是计算机软硬件界面的核心。软件通过指令与硬件进行通信,硬件根据指令执行相应的操作。指…...
北航第六次数据结构与程序设计作业(查找与排序)选填题
一、 顺序查找的平均查找长度ASL(1 2 …… n)/ n (n 1)/ 2 二、 这半查找法的平均查找次数和判定树的深度有关系。若查找一个不存在的元素,说明进行了深度次比较。 注意,判定树不是满二叉树,因此深…...
Optional详解和常用API
目录 一、Optional简介 二、构建Optional对象三种方式 2.1 Optional.of(value) 2.1.1 使用案例 2.2 Optional.ofNullable(value) 2.2.1 使用案例 2.3 Optional.empty() 2.3.1 使用案例 三、Optional常用的api解析和使用案例 3.1 isPresent 3.1.1 使用案例 3.2 ifPrese…...
Unity 3D 物体的Inspector面板
1、Transform:位置、旋转、大小 2、Mesh Filter:物体的形状 3、Mesh Renderer:物体渲染(物体的衣服) 4、Collider:碰撞体...
闪烁与常亮的符号状态判断机制(状态机算法)
背景说明 在视觉项目中,经常要判断目标的状态,例如:符号的不同频率闪烁、常亮等。然而常规的视觉算法例如YOLO,仅仅只能获取当前帧是否存在该符号,而无法对于符号状态进行判断,然而重新写一个基于时序的卷积…...
Hyper-V如何将文件复制到虚拟机?教您3个简单的方法!
需要将文件复制到虚拟机! “大家好,有谁知道Hyper-V怎么将文件复制到虚拟机吗?我有一些文件,想要从主机中复制进虚拟机中,但是我不知道该怎么操作,有谁可以帮帮我吗?谢谢。” Hyper-V虚拟机可…...
Vue主要使用-03
组件通讯 组件通讯也是我们需要了解的,在我们的实际开发中,我们使用的非常多,比如父组件内的数据传入到子组件,子组件的数据传入到父组件,什么是父组件什么是子组件?父组件内包含着我们的子组件,我们的父组件可以有多个子组件,父组件就是我们使用子组件拼接的。 …...
LoadBalance客户端负载均衡
1. 前言Ribbon Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时࿰…...
Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描…...
逢3必过报数游戏-第13届蓝桥杯省赛Python真题精选
[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第84讲。 逢3必过报数游戏&…...
解决Qt的multimedia库在clion中依赖库补全的问题
解决Qt的multimedia库在clion中使用报错的问题 在clion中,使用Qt的multimedia库时会报如下错误: defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer" 我猜测出现这个错误的原因很可能是因为…...
图像处理:Python使用OpenCV进行图像锐化 (非锐化掩模、拉普拉斯滤波器)
文章目录 非锐化掩模 (Unsharp Masking)拉普拉斯滤波器 (Laplacian Filter)效果对比总结 在图像处理中,锐化操作用于增强图像的边缘和细节,使图像看起来更清晰。常见的图像锐化方法包括非锐化掩模(Unsharp Masking)和拉普拉斯滤波…...
windows用脚本编译qt的项目
mingw的 cd build ::设置jom环境 set PATHC:\Qt\Qt5.15.2\Tools\mingw810_32\bin;%PATH% set PATHC:\Qt\Qt5.15.2\5.15.2\mingw81_32\bin;%PATH% ::设置Qt环境 amd64_x86 或者 amd64 ::CALL "D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxilia…...
mybatis-plus使用拦截器实现sql完整打印
shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 在使用mybatis-plus(mybatis)的时候,往往需要…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
