当前位置: 首页 > news >正文

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;}
}

 七.其他相关方法持续更新中

。。。

http://www.lryc.cn/news/374103.html

相关文章:

  • 【Java04】引用变量数组初始化的内存机制
  • 基于JSP的足球赛会管理系统
  • 博客摘录「 AXI三种接口及DMA DDR XDMA介绍(应用于vivado中的ip调用)」2024年6月10日
  • Bigtable: A Distributed Storage System for Structured Data
  • RAG下的prompt编写探索
  • 【计算机组成原理】指令系统考研真题详解之拓展操作码!
  • 北航第六次数据结构与程序设计作业(查找与排序)选填题
  • Optional详解和常用API
  • Unity 3D 物体的Inspector面板
  • 闪烁与常亮的符号状态判断机制(状态机算法)
  • Hyper-V如何将文件复制到虚拟机?教您3个简单的方法!
  • Vue主要使用-03
  • LoadBalance客户端负载均衡
  • Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
  • 逢3必过报数游戏-第13届蓝桥杯省赛Python真题精选
  • 解决Qt的multimedia库在clion中依赖库补全的问题
  • 图像处理:Python使用OpenCV进行图像锐化 (非锐化掩模、拉普拉斯滤波器)
  • windows用脚本编译qt的项目
  • mybatis-plus使用拦截器实现sql完整打印
  • GPT-4并非世界模型,LeCun双手赞同!ACL力证LLM无法模拟真实世界
  • 第 6 章: Spring 中的 JDBC
  • [C++ STL] vector 详解
  • PHP简约轻型聊天室留言源码
  • 代码随想录算法训练营day23|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • 实时通信websocket和sse
  • (超详细)基于动态顺序表实现简单的通讯录项目
  • 修改SubVI的LabVIEW默认搜索路径
  • 基于python深度学习的CNN图像识别鲜花-含数据集+pyqt界面
  • 第九站:Java黑——安全编码的坚固防线(第②篇)
  • 如何优雅的删除正式环境中的大表