java获取上周和上上周的开始时间和结束时间
生活随笔
收集整理的這篇文章主要介紹了
java获取上周和上上周的开始时间和结束时间
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
最近有個需求,需要查詢前2個自然周的數據作對比,那首先要考慮的就是怎么獲取前2個自然周的時間,查了下網上發現太亂了,自己考慮了下自己寫個,思路也很簡單,就是在當前時間基礎上,往前偏移。
例如:當天是2021年2月07號
上周的自然周時間【2021-01-25 00:00:00 ~ 2021-01-31 23:59:59】
上上周的自然周時間【2021-01-18 00:00:00 ~ 2021-01-24 23:59:59】
那如果是是2021年2月01號,結果應該和2021年2月07號獲取的是一樣的
依賴
導入hutool-all依賴,因為使用了hutool中時間工具類
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.4</version></dependency>實現代碼
package com.example.demo.test;import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.Week; import com.google.common.collect.Maps;import java.util.HashMap;/*** @Author: lwh* @Date: 2021/2/7* @Description:**/ public class Test28 {public static void main(String[] args) {HashMap<String, String> weekTime = getLastWeekTime();System.out.println(weekTime);}/*** @Author: lwh* @Description: 獲取當前時間的上周,上上周的時間。* 例如:當天是2021年2月07號,上周的自然周時間【2021-01-25 00:00:00 ~ 2021-01-31 23:59:59】,上上周的自然周時間【2021-01-18 00:00:00 ~ 2021-01-24 23:59:59】* @Date: 2021/2/7* @Param: []* @Return: java.util.HashMap<java.lang.String,java.lang.String>**/private static HashMap<String, String> getLastWeekTime(){Week week = DateTime.now().dayOfWeekEnum();switch (week) {/** 周一 */case MONDAY:return getRealizeLastWeekTime(-14, -8, -7, -1);/** 周二 */case TUESDAY:return getRealizeLastWeekTime(-15, -9, -8, -2);/** 周三 */case WEDNESDAY:return getRealizeLastWeekTime(-16, -10, -9, -3);/** 周四 */case THURSDAY:return getRealizeLastWeekTime(-17, -11, -10, -4);/** 周五 */case FRIDAY:return getRealizeLastWeekTime(-18, -12, -11, -5);/** 周六 */case SATURDAY:return getRealizeLastWeekTime(-19, -13, -12, -6);/** 周日 */case SUNDAY:return getRealizeLastWeekTime(-20, -14, -13, -7);default:throw new RuntimeException("method:getLastWeekTime,獲取當前時間是周幾異常");}}private static HashMap<String, String> getRealizeLastWeekTime(int upLastStartOffset,int upLastEndOffset,int lastStartOffset,int lastEndOffset) {// 獲取上上周的開始時間和結束時間String startUpLastWeekTime = DateTime.now().offset(DateField.DAY_OF_YEAR, upLastStartOffset).setField(DateField.HOUR_OF_DAY,0).setField(DateField.MINUTE,0).setField(DateField.SECOND,0).setField(DateField.MILLISECOND,0).toString();String endUpLastWeekTime = DateTime.now().offset(DateField.DAY_OF_YEAR, upLastEndOffset).setField(DateField.HOUR_OF_DAY,23).setField(DateField.MINUTE,59).setField(DateField.SECOND,59).setField(DateField.MILLISECOND,0).toString();// 獲取上周的開始時間和結束時間String startLastWeekTime = DateTime.now().offset(DateField.DAY_OF_YEAR, lastStartOffset).setField(DateField.HOUR_OF_DAY,0).setField(DateField.MINUTE,0).setField(DateField.SECOND,0).setField(DateField.MILLISECOND,0).toString();String endLastWeekTime = DateTime.now().offset(DateField.DAY_OF_YEAR, lastEndOffset).setField(DateField.HOUR_OF_DAY,23).setField(DateField.MINUTE,59).setField(DateField.SECOND,59).setField(DateField.MILLISECOND,0).toString();HashMap<String, String> maps = Maps.newHashMap();maps.put("startUpLastWeekTime", startUpLastWeekTime);maps.put("endUpLastWeekTime", endUpLastWeekTime);maps.put("startLastWeekTime", startLastWeekTime);maps.put("endLastWeekTime", endLastWeekTime);return maps;} }結果
總結
以上是生活随笔為你收集整理的java获取上周和上上周的开始时间和结束时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows目录结构、移动、复制、搜索
- 下一篇: HALCON深度学习环境配置(Halco