zoukankan      html  css  js  c++  java
  • 计算两个日期之间的天数

    package test;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Calendar;
    
    public class TestDifferentDay {
    
    	/**date2比date1多的天数  
    	 * @param date1  
    	 * @param date2  
    	 * @return 
    	 * */
    	public static int differentDays(Date date1, Date date2) {
    		Calendar cal1 = Calendar.getInstance();
    		cal1.setTime(date1);
    		Calendar cal2 = Calendar.getInstance();
    		cal2.setTime(date2);
    		int day1 = cal1.get(Calendar.DAY_OF_YEAR);
    		int day2 = cal2.get(Calendar.DAY_OF_YEAR);
    		int year1 = cal1.get(Calendar.YEAR);
    		int year2 = cal2.get(Calendar.YEAR);
    		if (year1 != year2) { // 同一年
    			int timeDistance = 0;
    			for (int i = year1; i < year2; i++) {
    				if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { // 闰年
    					timeDistance += 366;
    				} else { // 不是闰年
    					timeDistance += 365;
    				}
    			}
    			return timeDistance + (day2 - day1);
    		} else { // 不同年
    			System.out.println("判断day2 - day1 : " + (day2 - day1));
    			return day2 - day1;
    		}
    	}
    
    	/**
    	 * 通过时间秒毫秒数判断两个时间的间隔
    	 * 
    	 * @param date1
    	 * @param date2
    	 * @return
    	 * */
    	public static int differentDaysByMillisecond(Date date1, Date date2) {
    		int days = (int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));
    		return days;
    	}
    
    	public static void main(String[] args) {
    
    		String dateStr = "2008-1-1 1:21:28";
    		String dateStr2 = "2010-1-2 1:21:28";
    		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		try {
    			Date date2 = format.parse(dateStr2);
    			Date date = format.parse(dateStr);
    			System.out.println("两个日期的差距:" + differentDays(date, date2));
    			System.out.println("两个日期的差距:" + differentDaysByMillisecond(date, date2));
    		} catch (ParseException e) {
    			e.printStackTrace();
    		}
    	}
    }
    

      

  • 相关阅读:
    Java集合(15)--ConcurrentHashMap源码分析
    Java集合(14)--双枢轴快速排序(DualPivotQuicksort)
    Java集合(13)--LinkedHashMap源码分析
    Java集合(12)--TreeSet源码分析
    Java集合(11)--TreeMap源码分析
    Java集合(10)--HashSet源码分析
    Java集合(9)--Collection 和 Collections
    Java集合(8)--HashMap源码分析
    day33-4用java的jdbc查看数据库中表的内容
    day33-1-1用java的jdbc添加数据库中表的内容(手动输入内容)
  • 原文地址:https://www.cnblogs.com/1020182600HENG/p/7519034.html
Copyright © 2011-2022 走看看