package com.datedaycha; import java.text.simpledateformat; import java.util.Calendar; import java.util.Date; import com.sun.org.apache.xerces.internal.impl.xpath.regex.parseexception; / * * java determine the number of days between two time differences 1, achieve goals Input: Two dates outputs: Two days of difference 2, code implementation Method 1: date comparison by Calendar class. Note: It is important to consider that the: date is a cross-year, such as a 2012, a 2015 Year is a leap year of peace years, the respective days are different */ public class date_day_cha1 { /** Method 1 * Date2 more than date1 days * @param date1 * @param date2 * @return */ public static int differentdays_one (Date &NBSP;DATE1,DATE&NBSP;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); //Add time date size judgment tube Him who big who small &Nbsp; int diff ; if (day1<day2) { diff = day2 - day1; } else { diff = day1 - day2; } if (year1 != YEAR2) //different years { int timedistance = 0 ; for (int i = year1 ; i < year2 ; i ++) { if (i%4==0 && i%100!=0 || i%400==0) //leap year { timedistance += 366; } else //not leap year { Timedistance += 365; } } //return timedistance + (day2-day1) ; return timeDistance + diff ; } else //same year { // system.out.println (" Judge day2 - day1 : " + (day2-day1)); // return day2-day1; system.out.println ("Judging day2 - day1 : " + diff ); return diff; } } /* directly by calculating the number of milliseconds of two dates, dividing their difference by the number of milliseconds in a day, we can get the number of days that we want to differ by the two dates. */ /** * two-time interval by time-second-millisecond number * @param date1 * @param date2 * @return */ public static int differentdaysbymillisecond (Date date1,Date DATE2) { //Add a time date size Judging Tube He who big who small long time1 = date1.gettime (); long time2 = date2.gettime (); long diff ; if (time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } //int days = (int) (Date2.getTime ( ) - date1.gettime ()) / (1000*3600*24)); int days = ( int) (diff /(1000*3600*24)); return days; } //Test public static void main (String[] args) throws exception { string datestr = "2017-1-1 0:0:0"; string datestr2 = "2017-9-14 10:57:01 "; 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 ("Two-date gap Method 1:" + Differentdays_one (Date,date2)); system.out.println ("Two-date gap Method 2:" + Differentdaysbymillisecond (Date,date2)); date d=new date (); system.out.println (D.gettime ()); system.out.println ("Distance today-two dates gap Method 1:" + differentdays_one (Date,d)); system.out.println ("Distance today-two dates gap Method 2:" + differentdaysbymillisecond (d,date)); } catch (ParseException e) { e.printstacktrace (); } } } Method 2:
package com.datedaycha; import java.text.dateformat; import java.text.simpledateformat; import java.util.date; import com.sun.org.apache.xerces.internal.impl.xpath.regex.parseexception; / ** * time distance * @author LC * @version 1.0 * @date 2017-9-14 10:59:04 */ public class date_day_cha2 { /** * two time difference between days * @param one Time Parameters 1: * @param two Time Parameters 2: * @return Difference days */ public static long getdistancedays (string str1, string STR2) throws Exception{ DateFormat df = new SimpleDateFormat ("Yyyy-mm-dd"); date one; date two; long days=0; try { one = df.parse (STR1); two = df.parse (STR2); long Time1 = one.gettime (); long time2 = two.gettime (); long diff ; if (time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } days = diff / (1000 * 60 * 60 * 24); } catch (parseexception e) { e.printstacktrace (); } return days; } /** * Two time difference between how many days how many hours how many seconds * @param str1 Time Parameters 1 Format: 1990-01-01 12:00:00 * @param str2 Time Parameters 2 format:2009-01-01 12:00:00 * @return long[] return value: {days, , , seconds} * @throws Exception */&Nbsp; public static long[] getdistancetimes (STRING&NBSP;STR1, &NBSP;STRING&NBSP;STR2) throws exception { dateformat df = new simpledateformat ("Yyyy-mm-dd hh:mm:ss"); date one; date two; long day = 0; long hour = 0; long min = 0; long sec = 0; try { one = df.parse ( STR1); two = df.parse (str2); long time1 = one.gettime (); long time2 = two.gettime (); Long diff ; if (time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * ()) - day * 24 * 60 - hour * 60); sec = (diff/1000-day*24*60*60-hour*60*60-min*60); } catch ( parseexception e) { e.printstacktrace (); } long[] times = {day, hour, min, sec}; return times; } /** * two X hoursDistance between the days how many hours how many minutes how many seconds * @param str1 Time Parameters 1 Format: 1990-01-01 12:00:00 * @param str2 Time Parameters 2 format:2009-01-01 12:00:00 * @return String return value: xx days xx hours xx minutes xx seconds * @throws Exception */ public static string getdistancetime (String STR1,&NBSP;STRING&NBSP;STR2) throws Exception { DateFormat df = new simpledateformat ("Yyyy-mm-dd hh:mm:ss"); date one; Date two; long day = 0; Long hour = 0; long min = 0; long sec = 0; try { one = df.parse (STR1); two = df.parse (STR2); long time1 = one.gettime (); long time2 = two.gettime (); long diff ; if (time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - dAY&NBSP;*&NBSP;24&NBSP;*&NBSP;60&NBSP;-&NBSP;HOUR&NBSP;*&NBSP;60); sec = ( diff/1000-day*24*60*60-hour*60*60-min*60); } catch (ParseException e) { e.printstacktrace (); } return day + "Days" + hour + "hours" + min + "Minutes" + sec + "seconds"; } //test public Static void main (String[] args) throws Exception { String dateStr = "2008-1-1 1:21:28"; string datestr2 = "2017-9-14 10:57:01"; long days=getdistancedays (DATESTR, &NBSP;DATESTR2); long[] longdays2; longdays2= Getdistancetimes (DATESTR,&NBSP;DATESTR2); string stringday3= getdistancetime (DATESTR,&NBSP;DATESTR2); system.out.println ("Return value returns: How many days difference:" +days); system.out.println (" Return value return:long[] return value: {Day, , minutes, seconds}----: "+longdays2[0]+" Days "+longdays2[1]+" hours "+longdays2[2]+" +longdays2[3]+ "Seconds") system.out.println ("Return value return:string return value: xx days xx hours xx minutes xx seconds -----: "+stringday3); } }
Java determines the number of days between two time differences!