1. 程式人生 > >JAVA 比較兩個日期相差的天數,隔天計算

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