From 593034c68e264b8bd0cdc74d5d70e6a6876dc4fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=87=95=E9=B9=8F?= Date: Wed, 11 Aug 2021 10:15:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/DateUtil.java | 78 +++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/main/java/DateUtil.java diff --git a/src/main/java/DateUtil.java b/src/main/java/DateUtil.java new file mode 100644 index 0000000..5bd23ff --- /dev/null +++ b/src/main/java/DateUtil.java @@ -0,0 +1,78 @@ +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author yanpeng + * @version 1.0 + * @desc TODO + * @company 北京中经网软件有限公司 + * @date 2021/8/10 9:51 + */ +public class DateUtil { + public static void main(String[] args) { + Map beforeDate = null; + try { + beforeDate = getBeforeDate(0); + } catch (ParseException e) { + e.printStackTrace(); + } + System.out.println(beforeDate); + } + + /** + * @param checkCalculateCycle 考核计算周期 0=日 1=周 2=月 3=季 4=年 + * @return + */ + public static Map getBeforeDate(int checkCalculateCycle) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date parse = sdf.parse("2021-08-01"); + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); +// calendar.setTime(parse); + int year = calendar.get(Calendar.YEAR); + int month = calendar.get(Calendar.MONTH) + 1; //获取月份,0表示1月份 + int quarter = month / 3; + Map map = new HashMap(); + map.put("year", year); + if (checkCalculateCycle == 4) { + map.put("year", --year); + return map; + } else if (checkCalculateCycle == 3) { + if (month <= 3) { + map.put("year", --year); + map.put("quarter", 4); + } else { + if (month % 3 == 0) { + quarter--; + } + map.put("quarter", quarter); + } + return map; + } else if (checkCalculateCycle == 2) { + calendar.add(Calendar.MONTH, -1); + month = calendar.get(Calendar.MONTH) + 1; + map.put("year", calendar.get(Calendar.YEAR)); + map.put("month", month); + map.put("quarter", month % 3 == 0 ? (month / 3) : (month / 3 + 1)); + return map; + } else if (checkCalculateCycle == 1) { + calendar.add(Calendar.WEEK_OF_MONTH, -1); + month = calendar.get(Calendar.MONTH) + 1; + map.put("year", calendar.get(Calendar.YEAR)); + map.put("quarter", month % 3 == 0 ? (month / 3) : (month / 3 + 1)); + map.put("month", month); + map.put("week", calendar.get(Calendar.WEEK_OF_MONTH)); + return map; + } else if (checkCalculateCycle == 0) { + calendar.add(Calendar.DAY_OF_MONTH, -1); + month = calendar.get(Calendar.MONTH) + 1; + map.put("year", calendar.get(Calendar.YEAR)); + map.put("quarter", month % 3 == 0 ? (month / 3) : (month / 3 + 1)); + map.put("month", month); + map.put("week", calendar.get(Calendar.WEEK_OF_MONTH)); + map.put("day", calendar.get(Calendar.DAY_OF_MONTH)); + return map; + } + return map; + } +}