From 72950f60dee7b842c81feea579ec02b078914e78 Mon Sep 17 00:00:00 2001 From: fwq <582742538@qq.com> Date: 星期二, 07 十一月 2023 16:21:30 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/hx/util/DateUtil.java | 137 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 127 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hx/util/DateUtil.java b/src/main/java/com/hx/util/DateUtil.java index 3bf51a3..29b40d0 100644 --- a/src/main/java/com/hx/util/DateUtil.java +++ b/src/main/java/com/hx/util/DateUtil.java @@ -455,7 +455,7 @@ * endTime姣攕tartTime澶氱殑澶╂暟 * @param startTime 鏈�灏忔椂闂� * @param endTime 鏈�澶ф椂闂� - * @return + * @return 杩斿洖 */ public static Integer differDay(Date startTime,Date endTime){ Calendar cal1 = Calendar.getInstance(); @@ -500,8 +500,7 @@ } /**鎶婄杞崲鎴怷澶鏃禭鍒哫绉�*/ - public static String getChineseStr(Integer second) - { + public static String getChineseStr(Integer second) { int day = 24 * 60 * 60; int hour = 60 * 60; int min = 60; @@ -609,7 +608,7 @@ public static Date getYearStart(Date time) { Calendar calendar = Calendar.getInstance(); calendar.setTime(time); - calendar.set(Calendar.MONTH, 1); + calendar.set(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); @@ -625,7 +624,7 @@ public static Date getYearEnd(Date time) { Calendar calendar = Calendar.getInstance(); calendar.setTime(time); - calendar.set(Calendar.MONTH, 12); + calendar.set(Calendar.MONTH, 11); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DATE)); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); @@ -640,7 +639,7 @@ public static String dayToStart(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); - calendar.set(Calendar.HOUR, 0); + calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); @@ -653,11 +652,23 @@ public static String dayToEnd(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); - calendar.set(Calendar.HOUR, 23); + calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); return sdf.format(calendar.getTime()); + } + + /**杩欏ぉ鐨勫紑濮嬫椂闂� + * 鏃ユ湡2000-01-01鍙�2000-01-01 00:00:00 + */ + public static Date dayToStartDate(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + return calendar.getTime(); } /**杩欏ぉ鐨勬渶鍚庢椂闂� @@ -666,7 +677,7 @@ public static Date dayToEndDate(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); - calendar.set(Calendar.HOUR, 23); + calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); return calendar.getTime(); @@ -683,6 +694,7 @@ cal.roll(Calendar.DATE, -1); return cal.getActualMaximum(Calendar.DATE); } + /**鑾峰彇鏈堜唤鐨勫ぉ鏁� * @param year 骞翠唤 * @param month 鏈堜唤 @@ -700,7 +712,7 @@ /**鑾峰彇鏈堜唤鐨勫ぉ鏁� * @param yearMonth 骞存湀 * @param format 鏃堕棿鏍煎紡 - * @return + * @return 杩斿洖 */ public static int getMonthDays(String yearMonth,String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); @@ -722,10 +734,115 @@ public static boolean getFrontMinute(Date date,int num) { Calendar cal = Calendar.getInstance(); cal.setTime(date); - cal.set(Calendar.HOUR, num-1); + cal.set(Calendar.HOUR_OF_DAY, num-1); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); return date.compareTo(cal.getTime()) < 1; } + + /** + * 鑾峰緱鏌愪釜鏃ユ湡鐨勫綋澶╂煇鐐� + * 渚嬪:2022-12-26 11:20:00 -> 2022-12-26 13:00:00 + * @param num 24灏忔椂 + */ + public static String getHourDayTime(Date date,int num) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, num); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + return sdf.format(calendar.getTime()); + } + + /** + * 鑾峰彇鏃堕棿褰撴湀鍓╀綑澶╂暟 + * */ + public static Integer getMonthSurplus(Date date) { + Calendar month = Calendar.getInstance(); + month.setTime(new Date()); + month.set(Calendar.DATE, 1); + month.roll(Calendar.DATE, -1); + return month.getActualMaximum(Calendar.DATE) - Calendar.getInstance().get(Calendar.DAY_OF_MONTH); + } + + /**鑾峰彇褰撳墠鏃堕棿鎵�鍦ㄥ懆鐨勫懆涓�00:00:00*/ + public static Date getMonday(Date date) { + Calendar calendar = Calendar.getInstance(Locale.CHINA); + calendar.setTime(date); + //浠ュ懆涓�涓洪鏃� + calendar.setFirstDayOfWeek(Calendar.MONDAY); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + //鍛ㄤ竴 + calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + return calendar.getTime(); + } + + /** + * 鏍规嵁鍑虹敓骞存湀鏃ヨ绠楀勾榫� + * @param birth + * @return + */ + public static int getAge(Date birth) { + Calendar cal = Calendar.getInstance(); + int thisYear = cal.get(Calendar.YEAR); + int thisMonth = cal.get(Calendar.MONTH); + int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); + + cal.setTime(birth); + int birthYear = cal.get(Calendar.YEAR); + int birthMonth = cal.get(Calendar.MONTH); + int birthdayOfMonth = cal.get(Calendar.DAY_OF_MONTH); + + int age = thisYear - birthYear; + + // 鏈冻鏈� + if (thisMonth <= birthMonth) { + // 褰撴湀 + if (thisMonth == birthMonth) { + // 鏈冻鏃� + if (dayOfMonth < birthdayOfMonth) { + age--; + } + } else { + age--; + } + } + return age; + } + + /** + * 鑾峰彇鏌愬ぉ缁撴潫绉掓暟 + * @param dateTime 鏃ユ湡 + * @param lateSecond 寤惰繜绉掓暟 + * @return + */ + public static long todayEndSecond(Date dateTime, Long lateSecond) { + if(dateTime == null){ + dateTime = new Date(); + } + if(lateSecond == null){ + lateSecond = 0L; + } + Date endTime = DateUtil.dayToEndDate(dateTime); + return differSecond(dateTime, endTime) + lateSecond; + } + + /** + * 璁$畻2涓疄闄呯浉宸鏁� + * @param startTime 寮�濮嬫椂闂� + * @param endTime 缁撴潫鏃堕棿 + * @return + */ + public static long differSecond(Date startTime, Date endTime) { + if(startTime == null || endTime == null){ + return 0L; + } + long sTime = startTime.getTime(); + long eTime = endTime.getTime(); + return (eTime - sTime) / 1000L; + } } -- Gitblit v1.8.0