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 | 186 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 142 insertions(+), 44 deletions(-) diff --git a/utils/src/main/java/org/yeshi/utils/DateUtil.java b/utils/src/main/java/org/yeshi/utils/DateUtil.java index fa36db5..7030788 100644 --- a/utils/src/main/java/org/yeshi/utils/DateUtil.java +++ b/utils/src/main/java/org/yeshi/utils/DateUtil.java @@ -2,80 +2,178 @@ import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; -import java.util.HashMap; -import java.util.Map; - +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 ns = 1000;// 涓�绉掗挓鐨勬绉掓暟 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;// 璁$畻宸灏戝垎閽� - long sec = diff % nd % nh % nm / ns;// 璁$畻宸灏戠 - - //System.out.println("鏃堕棿鐩稿樊锛�" + day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓" + sec + "绉�"); - - datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓" ; - + + datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓"; + } catch (ParseException e) { - // TODO Auto-generated catch block e.printStackTrace(); } - + return datatime; } - - - public static String dateDiff2(Date startTime, Date endTime) throws Exception{ - - String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓" ; - - long ns = 1000;// 涓�绉掗挓鐨勬绉掓暟 + + 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); + } - public static void main(String[] args) { - long a= 1529044851008L; - Long l = new Long(a); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date(l); - System.out.println(sdf.format(date)); - new DateUtil().dateDiff(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()), sdf.format(date)); - } + /** + * 楠岃瘉鏄惁灞炰簬鍚屼竴澶� + * + * @param date1 + * @param date2 + * @return + */ + public static boolean isSameDay(Date date1, Date date2) { + if (date1 != null && date2 != null) { + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(date1); + Calendar cal2 = Calendar.getInstance(); + cal2.setTime(date2); + return isSameDay(cal1, cal2); + } else { + return false; + } + } + + /** + * 楠岃瘉鏄惁灞炰簬鍚屼竴澶� + * + * @param cal1 + * @param cal2 + * @return + */ + public static boolean isSameDay(Calendar cal1, Calendar cal2) { + if (cal1 != null && cal2 != null) { + return cal1.get(0) == cal2.get(0) && cal1.get(1) == cal2.get(1) && cal1.get(6) == cal2.get(6); + } else { + 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