From 21a5d62894e6cca7d536ffcc1d63898ffaf16185 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 25 二月 2019 11:41:17 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- utils/src/main/java/org/yeshi/utils/DateUtil.java | 135 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 107 insertions(+), 28 deletions(-) diff --git a/utils/src/main/java/org/yeshi/utils/DateUtil.java b/utils/src/main/java/org/yeshi/utils/DateUtil.java index b0718d9..7030788 100644 --- a/utils/src/main/java/org/yeshi/utils/DateUtil.java +++ b/utils/src/main/java/org/yeshi/utils/DateUtil.java @@ -2,66 +2,74 @@ import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; - +import java.util.List; public class DateUtil { - + public static String dateDiff(String startTime, String endTime) { - - String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓" ; + + String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓"; SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); - + try { long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� - + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� long diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime(); - + long day = diff / nd;// 璁$畻宸灏戝ぉ long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃� long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽� - - datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓" ; - + + datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓"; + } catch (ParseException e) { e.printStackTrace(); } - + return datatime; } - - - public static String dateDiff2(Date startTime, Date endTime) throws Exception{ - - String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓" ; - + + public static String dateDiff2(Date startTime, Date endTime) throws Exception { + + String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓"; + long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� - + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� long diff = endTime.getTime() - startTime.getTime(); - + long day = diff / nd;// 璁$畻宸灏戝ぉ long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃� long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽� - - - datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓" ; - - + + datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓"; + return datatime; } - public String transferLongToDate(String dateFormat, Long millSec) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date(millSec); - return sdf.format(date); + /** + * 閫氳繃鏃堕棿绉掓绉掓暟鍒ゆ柇涓や釜鏃堕棿鐨勯棿闅� + * @param date1 + * @param date2 + * @return + */ + public static int differentDaysByMillisecond(Date start, Date end) { + return (int) ((end.getTime() - start.getTime()) / (1000*3600*24)); } + + public String transferLongToDate(String dateFormat, Long millSec) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = new Date(millSec); + return sdf.format(date); + } /** * 楠岃瘉鏄惁灞炰簬鍚屼竴澶� @@ -96,5 +104,76 @@ return false; } } + + /** + * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡 + * + * @param num + * 澧炲姞鐨勫ぉ鏁� + * @param nowDate + * 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static String plusDay(int num, String nowDate) throws ParseException { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date currdate = format.parse(nowDate); + + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, num); + + return format.format(ca.getTime()); + } + + /** + * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡 + * + * @param num + * 鍑忓幓鐨勫ぉ鏁� + * @param nowDate + * 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static String reduceDay(int num, String nowDate) throws ParseException { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date currdate = format.parse(nowDate); + + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩 + + return format.format(ca.getTime()); + } + + /** + * 杩斿洖涓棿鏃ユ湡 + * @param startTime + * @param endTime + * @return + * @throws Exception + */ + public static List<String> dayFactory(String startTime, String endTime) throws Exception { + List<String> listDate = new ArrayList<String>(); + + String plusDay = ""; + for (int i = 0; i < 1000; i++) { + if (i == 0) { + plusDay = startTime; + } else { + plusDay = DateUtil.plusDay(i, startTime); + } + + listDate.add(plusDay); + + if (plusDay.equals(endTime)) { + break; // 鏃堕棿缁撴潫 + } + } + return listDate; + } + + } \ No newline at end of file -- Gitblit v1.8.0