From 5acd00fd233757a9c7616b23b195e93e3cdb605a Mon Sep 17 00:00:00 2001 From: chenjiahe <763432473@qq.com> Date: 星期一, 26 十二月 2022 17:06:22 +0800 Subject: [PATCH] 新增时间算法 --- src/main/java/com/hx/util/DateUtil.java | 243 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 241 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hx/util/DateUtil.java b/src/main/java/com/hx/util/DateUtil.java index 683814c..3618084 100644 --- a/src/main/java/com/hx/util/DateUtil.java +++ b/src/main/java/com/hx/util/DateUtil.java @@ -302,6 +302,18 @@ } } + /**鏃堕棿涓婄鍙犲姞 + * @Author: ChenJiaHe + * @param dateTime 鏃堕棿 + * @param second 绉� + * @return + */ + public static Date addSecond(Date dateTime,int second){ + Calendar c = Calendar.getInstance(); + c.setTime(dateTime); + c.add(Calendar.SECOND, second); + return c.getTime(); + } /**鏃堕棿涓婂垎閽熷彔鍔� * @Author: ChenJiaHe @@ -428,6 +440,18 @@ } /** + * 鑾峰彇涓や釜鏃堕棿鐩稿樊鍒嗛挓鏁� + * @param startTime 寮�濮嬫椂闂� + * @param endTime 缁撴潫鏃堕棿 + * @return 鍒嗛挓 + */ + public static long differMinute(Date startTime, Date endTime) { + long NTime = startTime.getTime(); + long OTime = endTime.getTime(); + return (NTime - OTime) / 1000 / 60; + } + + /** * endTime姣攕tartTime澶氱殑澶╂暟 * @param startTime 鏈�灏忔椂闂� * @param endTime 鏈�澶ф椂闂� @@ -512,8 +536,223 @@ } return 0; - - } + /** + * 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂� + * @param time 鏃堕棿 + * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 00:00:00 + */ + public static Date getMonthStart(Date time) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(time); + calendar.set(Calendar.DAY_OF_MONTH, 1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + return calendar.getTime(); + } + + /** + * 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂� + * + * @param num 0鎷垮彇褰撴湀锛屾浠h〃鍚庯紝璐熶唬琛ㄥ墠锛屽�间负鍑犱釜锛堟湀锛� + * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 00:00:00 + */ + public static String getMonthStart(Integer num) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH, num); + calendar.set(Calendar.DAY_OF_MONTH, 1); + 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); + return sdf.format(calendar.getTime()); + } + + /** + * 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿 + * @param date 鐐瑰墠鏃堕棿 + * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59 + */ + public static Date getMonthEnd(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + return calendar.getTime(); + } + + /** + * 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿 + * @param num 0鎷垮彇褰撴湀锛屾浠h〃鍚庯紝璐熶唬琛ㄥ墠锛屽�间负鍑犱釜锛堟湀锛� + * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59 + */ + public static String getMonthEnd(Integer num) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH, num); + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + 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()); + } + + /** + * 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂� + * @param time 鏃堕棿 + * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 00:00:00 + */ + public static Date getYearStart(Date time) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(time); + calendar.set(Calendar.MONTH, 1); + calendar.set(Calendar.DAY_OF_MONTH, 1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + return calendar.getTime(); + } + + /** + * 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿 + * @param time 鏃堕棿 + * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 00:00:00 + */ + public static Date getYearEnd(Date time) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(time); + calendar.set(Calendar.MONTH, 12); + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DATE)); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + return calendar.getTime(); + } + + + /**杩欏ぉ鐨勫紑濮嬫椂闂� + * 鏃ユ湡2000-01-01鍙�2000-01-01 00:00:00 + */ + public static String dayToStart(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); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + return sdf.format(calendar.getTime()); + } + + /**杩欏ぉ鐨勬渶鍚庢椂闂� + * 鏃ユ湡2000-01-01鍙�2000-01-01 23:59:59 + */ + public static String dayToEnd(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + 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(); + } + + /**杩欏ぉ鐨勬渶鍚庢椂闂� + * 鏃ユ湡2000-01-01鍙�2000-01-01 23:59:59 + */ + public static Date dayToEndDate(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + return calendar.getTime(); + } + + /**鑾峰彇鏈堜唤鐨勫ぉ鏁� + * @param date 鏃堕棿 + * @return 鏈堜唤鐨勫ぉ鏁� + */ + public static int getMonthDays(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.set(Calendar.DATE, 1); + cal.roll(Calendar.DATE, -1); + return cal.getActualMaximum(Calendar.DATE); + } + /**鑾峰彇鏈堜唤鐨勫ぉ鏁� + * @param year 骞翠唤 + * @param month 鏈堜唤 + * @return 鏈堜唤鐨勫ぉ鏁� + */ + public static int getMonthDays(int year, int month) { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, year); + cal.set(Calendar.MONTH, (month - 1)); + cal.set(Calendar.DATE, 1); + cal.roll(Calendar.DATE, -1); + return cal.getActualMaximum(Calendar.DATE); + } + + /**鑾峰彇鏈堜唤鐨勫ぉ鏁� + * @param yearMonth 骞存湀 + * @param format 鏃堕棿鏍煎紡 + * @return + */ + public static int getMonthDays(String yearMonth,String format) { + SimpleDateFormat sdf = new SimpleDateFormat(format); + Calendar calendar = Calendar.getInstance(); + try { + calendar.setTime(sdf.parse(yearMonth)); + } catch (ParseException e) { + e.printStackTrace(); + } + calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + return calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + } + + /**褰撳ぉ澶氬皯鐐瑰墠 + * @param date 鏃堕棿 + * @param num 澶氬皯鐐瑰墠锛屼笉鍚綋鐐瑰墠锛�24灏忔椂鍒� + * @return 鏈堜唤鐨勫ぉ鏁� + */ + public static boolean getFrontMinute(Date date,int num) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + 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()); + } } -- Gitblit v1.8.0