JAVA 比較兩個日期相差的天數,隔天計算
JAVA 比較兩個日期相差的天數
在工作中我們經常遇到需要計算兩個日期相差的天數的問題,一個是通過得到兩個日期之間的毫秒數,換算成天數得到究竟差了多少天.但是這種問題會出現隔天問題,既:
2017.11.16 4:35 到 2017.11.17 3:35
通過毫秒計算得到的是0天,因為不滿24小時
package demo;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class day {
/**
* 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)+1) ;
}
else //不同年
{
System.out.println("判斷day2 - day1 : " + (day2-day1));
return ((day2-day1)+1);
}
}
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 = "2015-1-1 21:21:28";
String dateStr2 = "2015-1-1 22:21:28";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
java.util.Date date3 =format.parse(dateStr2);
java.sql.Date date2=new java.sql.Date(date3.getTime());
java.util.Date date4 =format.parse(dateStr);
java.sql.Date date1=new java.sql.Date(date4.getTime());
System.out.println("兩個日期的差距:" + differentDays(date1,date2));
System.out.println("兩個日期的差距:" + differentDaysByMillisecond(date1,date2));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
這是一個DEMO有不對的地方謝謝指正.適合初學者,直接複製貼上就能用
相關推薦
JAVA 比較兩個日期相差的天數,隔天計算
JAVA 比較兩個日期相差的天數 在工作中我們經常遇到需要計算兩個日期相差的天數的問題,一個是通過得到兩個日期之間的毫秒數,換算成天數得到究竟差了多少天.但是這種問題會出現隔天問題,既: 2017.11.16 4:35 到 2017.11.17 3:35
JAVA 比較兩個日期相差的天數
在測試工作中經常會使用到比較兩個日期相差的天數,我之前用過實現這一功能的兩個版本的方法,原始碼如下: 版本一:public static int getIntervalDays(Date fDate, Date oDate) { if (null == fDa
java實現計算兩個日期相差天數
要求:計算1999年1月1日和2018年11月3日相差多少天 思路: 1、每年的天數累加,需判斷閏年、平年 2、每月的天數累加,不同月份天數不同,平年和閏年,2月份的天數也不同 3、將日期天數累加 (因為計算的是相差的天數,所以這個天數需要減1天,所以這裡加2就可以了) packag
php 計算兩個日期相差天數
class end rto date 日期相差 天數 day sharp echo php 計算兩個日期相差天數 <?php $startdate=strtotime("2013-3-09"); $enddate=strtotime("2013-
Java獲取兩個日期相差的月數
在網上找了一下關於求兩個日期相差月數的,發現不是沒算年份就是算的不對,這裡我寫了一個,留著以後可能用到,自己測試目前沒問題,在這裡分享一下,需要藉助java.util.Calendar SimpleDateFormat format = new SimpleDateFor
java 比較兩個日期大小日期型別和字元型別
/** * 比較兩個日期之間的大小 * * @param d1 * @param d2 * @return 前者大於後者返回true 反之false */ public static b
JavaScript計算兩個日期相差天數,週數
//返回兩個日期相差的天數 function WeeksBetw(date1,date2) { //這裡的date1、date2為日期的字串 //將date1,date2轉換為Date物件 var _dt1=new Date(date1); var _dt2=new Date(date2); var dt1=
計算兩個日期相差天數的最簡潔的代碼
string 不同 都是 card tps 飛機 ret con 使用數組 國際慣例,轉載註明出處。大飛機: https://user.qzone.qq.com/16491848/blog/1551429397?source=namecardword 1 stati
Java 計算兩個日期相差年數字、月數、天數及時分秒
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.apache.log4j.Logger;
Java 計算兩個日期相差的天數
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class test16 { /**
java實現計算兩個日期相差多少月、比較兩個日期大小 等常用日期操作
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.u
Java 計算兩個日期相差月數、天數
public static final int daysBetween(Date early, Date late) { java.util.Calendar calst = java.util.Calendar.getInstance(); jav
java計算兩個日期相差的天數
/** * 計算兩個日期相差的天數 * @param oldDate * @param newDate * @return * @author
實現:判斷日期之間關系(相交,相離,重合),得到相交重合的天數以及計算兩個日期相差的天數
數值 以及 c++ 日期類 OS 錯誤 表達 單位 有一個 package com.xiawei.repeatdays; import java.util.Date; /** * 判斷日期之間關系(相交,相離,重合),得到相交重合的天數 * */public class R
jquery 計算兩個日期相差的天數
title type script cti inpu UNC time put ID 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset = "utf-8">
判斷兩個日期相差的天數
相差 pre col return ret 計算 abs 天數 毫秒 判斷兩個日期相差的天數 /* 判斷兩個日期相差的天數 */ function numOf
java 獲取兩個日期之間的天數
public static String calcTwoDate(Date date ,Date date2){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date);
Java 求兩個日期之間的天數,最原始方法
import java.util.Scanner; public class first { public static void main(String[] args) { Scanner input_date = new Scanner(System.in);
java計算兩個日期相差多少天
在控制檯上輸入兩個精確到年,月,日的時間。 計算兩個日期之間相差了多少天,並顯示在控制檯上 package com.neuedu.homework; import java.util.Calendar; import java.util.Scanner; import sun.uti
Java計算兩個日期相差的月數
/** * 獲取兩個日期相差的月數 */ public static int getMonthDiff(Date d1, Date d2) { &nb