From c13d7af78a1fd29169c3b4c3ae3497d5706948f5 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 30 十月 2022 22:05:39 +0800
Subject: [PATCH] 写完排班核型逻辑
---
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java | 143 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 140 insertions(+), 3 deletions(-)
diff --git a/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java b/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
old mode 100644
new mode 100755
index e431476..29fb6ee
--- a/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
@@ -32,6 +32,7 @@
public static final String DATE_FORMATE_STRING_J = "yyyyMMddHHmmss.SSS";
public static final String DATE_FORMATE_STRING_K = "yyyyMMddHHmmssSSS";
public static final String DATE_FORMATE_STRING_L = "MMdd";
+ public static final String DATE_FORMATE_STRING_M = "yyyyMM";
static {
formats.put("yyyyMMddHHmmss", new SimpleDateFormat("yyyyMMddHHmmss"));
@@ -47,6 +48,7 @@
formats.put("yyyyMMddHHmmss.SSS", new SimpleDateFormat("yyyyMMddHHmmss.SSS"));
formats.put("yyyyMMddHHmmssSSS", new SimpleDateFormat("yyyyMMddHHmmssSSS"));
formats.put("MMdd", new SimpleDateFormat("MMdd"));
+ formats.put("yyyyMM", new SimpleDateFormat("yyyyMM"));
}
@@ -137,6 +139,28 @@
}
}
+ public static Date getDateFromStringB(String date) {
+ SimpleDateFormat sDateFormat = getDateFormat(DateUtil.DATE_FORMATE_STRING_B);
+ try {
+ synchronized (sDateFormat) {
+ return sDateFormat.parse(date);
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
+ public static Date getDateFromStringA(String date) {
+ SimpleDateFormat sDateFormat = getDateFormat(DateUtil.DATE_FORMATE_STRING_A);
+ try {
+ synchronized (sDateFormat) {
+ return sDateFormat.parse(date);
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
public static Date getDefaultDateFromString(String date)
throws ParseException {
return getDateFromString(date, "yyyyMMddHHmmss");
@@ -149,6 +173,7 @@
public static String getNow(String pattern) {
return getFormatTimeString(new Date(), pattern);
}
+
public static String getLastTime() {
return LAST_TIME;
@@ -350,15 +375,23 @@
public static Date getNextMonthFirstDate() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1);
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
calendar.add(Calendar.MONTH, 1);
return calendar.getTime();
}
public static Date getFirstDate() {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.DAY_OF_MONTH, 1);
- return calendar.getTime();
+ Calendar curDateCal = Calendar.getInstance();
+ curDateCal.set(Calendar.DAY_OF_MONTH, 1);
+ curDateCal.set(Calendar.HOUR_OF_DAY, 0);
+ curDateCal.set(Calendar.MINUTE, 0);
+ curDateCal.set(Calendar.SECOND, 0);
+ Date curDate = curDateCal.getTime();
+ return curDate;
}
+
public static String getNextMonthFirstDay(String fmt) {
String returndate = "";
@@ -405,6 +438,48 @@
return maxDate;
}
+ public static void main(String[] args) throws ParseException {
+
+// SimpleDateFormat sf = new SimpleDateFormat(DateUtil.DATE_FORMATE_STRING_A);
+// Calendar c = Calendar.getInstance();
+// c.setTime(DateUtil.getDateFromString("2021-12-03",DateUtil.DATE_FORMATE_STRING_A));
+// c.add(Calendar.DAY_OF_MONTH, 125);
+// System.out.println("澧炲姞涓�澶╁悗鏃ユ湡:"+sf.format(c.getTime()));
+ System.out.println("2021-12-07".compareTo(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B)));
+ }
+
+ public static String getAddDayString(Date date, String pattern, int days) {
+ SimpleDateFormat sf = new SimpleDateFormat(pattern);
+ Calendar c = Calendar.getInstance();
+ c.setTime(date);
+ c.add(Calendar.DAY_OF_MONTH, days);
+ return sf.format(c.getTime());
+ }
+
+ public static String getAddDayStringB(Date date, int days) {
+ SimpleDateFormat sf = new SimpleDateFormat(DATE_FORMATE_STRING_B);
+ Calendar c = Calendar.getInstance();
+ c.setTime(date);
+ c.add(Calendar.DAY_OF_MONTH, days);
+ return sf.format(c.getTime());
+ }
+
+ public static String getAddDayStringA(Date date, int days) {
+ SimpleDateFormat sf = new SimpleDateFormat(DATE_FORMATE_STRING_A);
+ Calendar c = Calendar.getInstance();
+ c.setTime(date);
+ c.add(Calendar.DAY_OF_MONTH, days);
+ return sf.format(c.getTime());
+ }
+
+
+ public static String getAddMonthStringA(Date date, int month) {
+ SimpleDateFormat sf = new SimpleDateFormat(DATE_FORMATE_STRING_A);
+ Calendar c = Calendar.getInstance();
+ c.setTime(date);
+ c.add(Calendar.MONTH, month);
+ return sf.format(c.getTime());
+ }
/**
* 鍦ㄧ粰瀹氱殑鏃ユ湡鍔犱笂鎴栧噺鍘绘寚瀹氭湀浠藉悗鐨勬棩鏈�
@@ -421,6 +496,20 @@
return c.getTime();
}
+ /**
+ * 鍦ㄧ粰瀹氱殑鏃ユ湡鍔犱笂鎴栧噺鍘绘寚瀹氬ぉ鏁板悗鐨勬棩鏈�
+ *
+ * @param sourceDate 鍘熷鏃堕棿
+ * @param day 瑕佽皟鏁寸殑鏈堜唤锛屽悜鍓嶄负璐熸暟锛屽悜鍚庝负姝f暟
+ * @return
+ */
+ public static Date stepDay(Date sourceDate, int day) {
+ Calendar c = Calendar.getInstance();
+ c.setTime(sourceDate);
+ c.add(Calendar.DATE, day);
+ return c.getTime();
+ }
+
public static String dateTimeToDate(String dateTime) {
String dateStr = "";
try {
@@ -432,6 +521,7 @@
return dateStr;
}
+
public static int getYear() {
Date date = getCurrentDate();
@@ -470,4 +560,51 @@
return false;
}
}
+
+ //鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勫ぉ鏁�
+ public static int daysBetween(Date now, Date returnDate) {
+ Calendar cNow = Calendar.getInstance();
+ Calendar cReturnDate = Calendar.getInstance();
+ cNow.setTime(now);
+ cReturnDate.setTime(returnDate);
+ setTimeToMidnight(cNow);
+ setTimeToMidnight(cReturnDate);
+ long todayMs = cNow.getTimeInMillis();
+ long returnMs = cReturnDate.getTimeInMillis();
+ long intervalMs = todayMs - returnMs;
+ return millisecondsToDays(intervalMs);
+ }
+
+ //鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勬绉掓暟
+ private static void setTimeToMidnight(Calendar calendar) {
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ }
+
+ //鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勫垎閽熸暟
+ private static int millisecondsToDays(long intervalMs) {
+ return (int) (intervalMs / (1000 * 86400));
+ }
+
+ /**
+ * 銆�銆� *瀛楃涓茬殑鏃ユ湡鏍煎紡鐨勮绠�
+ *
+ */
+ public static int daysBetween(String smdate, String bdate) {
+ long between_days = 0;
+ try {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(sdf.parse(smdate));
+ long time1 = cal.getTimeInMillis();
+ cal.setTime(sdf.parse(bdate));
+ long time2 = cal.getTimeInMillis();
+ between_days = (time2 - time1) / (1000 * 3600 * 24);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return Integer.parseInt(String.valueOf(between_days));
+ }
}
--
Gitblit v1.8.0