java時間比較年月日差幾天,java比較年月日日期大小

本文目錄一覽:

Java比較兩個時間相差多少天,多少個月,多少年

java比較兩個時間相差,可以使用calender類的api,實例如下:

package com.test;  

import java.text.DateFormat;  

import java.text.SimpleDateFormat;  

import java.util.Calendar;  

import java.util.Date;  

/**  

 * @description 日期比較天 月 年  

 * @author   

 */ 

public class DateTest {  

    public static void main(String[] args) {  

        String date = “2008-06-12”;  

          

        DateTest.compareDate(date, null, 0);  

        DateTest.compareDate(date, null, 1);  

        DateTest.compareDate(date, null, 2);  

          

        date = “2006-06-03”;          

        DateTest.compareDate(date, null, 0);  

        DateTest.compareDate(date, null, 1);  

        DateTest.compareDate(date, null, 2);  

        DateTest.compareDate(date, “2009-06-01”, 0);  

        DateTest.compareDate(date, “2009-06-01”, 1);  

        DateTest.compareDate(date, “2009-06-01”, 2);  

    }  

      

    /**  

     * @param date1 需要比較的時間 不能為空(null),需要正確的日期格式  

     * @param date2 被比較的時間  為空(null)則為當前時間  

     * @param stype 返回值類型   0為多少天,1為多少個月,2為多少年  

     * @return  

     */ 

    public static int compareDate(String date1,String date2,int stype){  

        int n = 0;  

          

        String[] u = {“天”,”月”,”年”};  

        String formatStyle = stype==1?”yyyy-MM”:”yyyy-MM-dd”;  

          

        date2 = date2==null?DateTest.getCurrentDate():date2;  

          

        DateFormat df = new SimpleDateFormat(formatStyle);  

        Calendar c1 = Calendar.getInstance();  

        Calendar c2 = Calendar.getInstance();  

        try {  

            c1.setTime(df.parse(date1));  

            c2.setTime(df.parse(date2));  

        } catch (Exception e3) {  

            System.out.println(“wrong occured”);  

        }  

        //List list = new ArrayList();  

        while (!c1.after(c2)) {                     // 循環對比,直到相等,n 就是所要的結果  

            //list.add(df.format(c1.getTime()));    // 這裡可以把間隔的日期存到數組中 列印出來  

            n++;  

            if(stype==1){  

                c1.add(Calendar.MONTH, 1);          // 比較月份,月份+1  

            }  

            else{  

                c1.add(Calendar.DATE, 1);           // 比較天數,日期+1  

            }  

        }  

          

        n = n-1;  

          

        if(stype==2){  

            n = (int)n/365;  

        }     

          

        System.out.println(date1+” — “+date2+” 相差多少”+u[stype]+”:”+n);        

        return n;  

    }  

      

    /**  

     * 得到當前日期  

     * @return  

     */ 

    public static String getCurrentDate() {  

        Calendar c = Calendar.getInstance();  

        Date date = c.getTime();  

        SimpleDateFormat simple = new SimpleDateFormat(“yyyy-MM-dd”);  

        return simple.format(date);  

    }  

運行結果:

2008-06-12 — 2009-06-09 相差多少天:362

2008-06-12 — 2009-06-09 相差多少月:12

2008-06-12 — 2009-06-09 相差多少年:0

2006-06-03 — 2009-06-09 相差多少天:1102

2006-06-03 — 2009-06-09 相差多少月:36

2006-06-03 — 2009-06-09 相差多少年:3

2006-06-03 — 2009-06-01 相差多少天:1094

2006-06-03 — 2009-06-01 相差多少月:36

2006-06-03 — 2009-06-01 相差多少年:2

java中如何計算出兩個日期之間相差多少天

思路就是根據它們相差的毫秒數除以每天的毫秒數(60*60*24*1000),代碼如下:

public static void main(String[] args) throws ParseException {

String date1=”1987-01-01″;

String date2=”2010-01-01″;

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-mm-dd”);

Date d1=sdf.parse(date1);

Date d2=sdf.parse(date2);

long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);

System.out.println(“1987-01-01 與 2010-01-01 相隔 “+daysBetween+” 天”);

}

運行結果如下:

擴展資料:

Java使用以下三種方法來比較兩個日期:

1、使用 getTime() 方法獲取兩個日期(自1970年1月1日經歷的毫秒數值),然後比較這兩個值。

2、使用方法 before(),after() 和 equals()。例如,一個月的12號比18號早,則 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 介面定義的,Date 類實現了這個介面。

SimpleDateFormat 是一個以語言環境敏感的方式來格式化和分析日期的類。SimpleDateFormat 允許你選擇任何用戶自定義日期時間格式來運行

例如:

SimpleDateFormat ft = new SimpleDateFormat (“yyyy-MM-dd hh:mm:ss”);

這一行代碼確立了轉換的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是時、分、秒。

注意:有的格式大寫,有的格式小寫,例如 MM 是月份,mm 是分;HH 是 24 小時制,而 hh 是 12 小時制。

以上實例編譯運行結果如下:

當前時間為: 2018-09-14 10:16:34

參考資料:

Java官方API介面-Date

菜鳥教程-Java 日期時間

java怎麼計算兩個日期相差幾天

java可以使用計算日期的天數差,以下是詳細代碼:

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class test16 {

/**

* @param args

* @throws ParseException

*/

public static void main(String[] args) throws ParseException {

// TODO Auto-generated method stub

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Date d1=sdf.parse(“2012-09-08 10:10:10”);

Date d2=sdf.parse(“2012-09-15 00:00:00”);

System.out.println(daysBetween(d1,d2));

System.out.println(daysBetween(“2012-09-08 10:10:10″,”2012-09-15 00:00:00”));

}

/**

* 計算兩個日期之間相差的天數

* @param smdate 較小的時間

* @param bdate 較大的時間

* @return 相差天數

* @throws ParseException

*/

public static int daysBetween(Date smdate,Date bdate) throws ParseException

{

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);

smdate=sdf.parse(sdf.format(smdate));

bdate=sdf.parse(sdf.format(bdate));

Calendar cal = Calendar.getInstance();

cal.setTime(smdate);

long time1 = cal.getTimeInMillis();

cal.setTime(bdate);

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

/**

*字元串的日期格式的計算

*/

public static int daysBetween(String smdate,String bdate) throws ParseException{

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);

Calendar cal = Calendar.getInstance();

cal.setTime(sdf.parse(smdate));

long time1 = cal.getTimeInMillis();

cal.setTime(sdf.parse(bdate));

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

}

Java計算兩個日期時間相差幾天,幾小時,幾分鐘等

思路是先計算兩個日期相差的毫秒數,然後分別根據每天的毫秒數、每小時的毫秒數、每分鐘的毫秒數來計算相差幾天,幾小時,幾分鐘。具體代碼如下:

public static String getDatePoor(Date endDate, Date nowDate) {

long nd = 1000 * 24 * 60 * 60;//每天毫秒數

long nh = 1000 * 60 * 60;//每小時毫秒數

long nm = 1000 * 60;//每分鐘毫秒數

long diff = endDate.getTime() – nowDate.getTime(); // 獲得兩個時間的毫秒時間差異

long day = diff / nd;   // 計算差多少天

long hour = diff % nd / nh; // 計算差多少小時

long min = diff % nd % nh / nm;  // 計算差多少分鐘

return day + “天” + hour + “小時” + min + “分鐘”;

}

然後做一個測試,調用這個方法測試一下:

可以看出兩個日期時間相差幾天,幾小時,幾分鐘都可以算出來。

擴展資料:

Java使用以下三種方法來比較兩個日期:

1、使用 getTime() 方法獲取兩個日期(自1970年1月1日經歷的毫秒數值),然後比較這兩個值。

2、使用方法 before(),after() 和 equals()。例如,一個月的12號比18號早,則 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 介面定義的,Date 類實現了這個介面。

參考資料:

Oracle官方API介面-Util-Date

Oracle官方API介面-SimpleDateFormat

菜鳥教程-Java 日期時間

原創文章,作者:UVTSW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330933.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UVTSW的頭像UVTSW
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python獲取當前日期的多種方法

    本文介紹如何使用Python獲取當前日期,並提供了多種方法,包括使用datetime模塊、time模塊以及第三方庫dateutil等。讓我們一步一步來看。 一、使用datetime…

    編程 2025-04-29
  • Python按照日期畫折線圖

    本文將為您詳細介紹如何使用Python按照日期(時間)來畫折線圖。 一、準備工作 首先,我們需要安裝Matplotlib包,該包提供了各種繪圖函數,包括折線圖、柱形圖、散點圖等等。…

    編程 2025-04-28
  • Akka 設置郵箱大小的方法和注意事項

    為了保障系統的穩定性和可靠性,Akka 允許用戶設置郵箱大小。本文將介紹如何在 Akka 中設置郵箱大小,並且提供一些注意事項,以幫助讀者解決可能遇到的問題。 一、設置郵箱大小 A…

    編程 2025-04-28
  • 谷歌瀏覽器窗口大小調整

    谷歌瀏覽器是當今最流行的網路瀏覽器之一,它的窗口大小調整是用戶操作其中的一個重要部分。本文將從多個方面對谷歌瀏覽器窗口大小調整做詳細的闡述。 一、窗口大小調整的基礎操作 谷歌瀏覽器…

    編程 2025-04-28
  • 如何通過IDEA設置gradle的heap大小

    在IDEA中設置gradle的heap大小可以有效提高gradle編譯、運行等使用效率,本文將從以下幾個方面介紹如何通過IDEA設置gradle的heap大小。 一、設置gradl…

    編程 2025-04-28
  • 矩陣比較大小的判斷方法

    本文將從以下幾個方面對矩陣比較大小的判斷方法進行詳細闡述: 一、判斷矩陣中心 在比較矩陣大小前,我們需要先確定矩陣中心的位置,一般採用以下兩種方法: 1.行列判斷法 int mid…

    編程 2025-04-28
  • Python如何輸入日期

    Python是一種非常流行的編程語言,它可以讓開發人員輕鬆地處理日期時間。在本文中,我們將詳細介紹Python如何輸入日期的方法,無論您是在處理日期時間的數據分析還是在創建Web應…

    編程 2025-04-28
  • 使用JavaScript日期函數掌握時間

    在本文中,我們將深入探討JavaScript日期函數,並且從多個視角介紹其應用方法和重要性。 一、日期的基本表示與獲取 在JavaScript中,使用Date對象來表示日期和時間,…

    編程 2025-04-28
  • Python提取身份證號碼的年月日和性別代碼

    本文將從以下幾個方面對Python提取身份證號碼的年月日和性別代碼進行詳細闡述。代碼示例見下文。 一、Python計算身份證號碼中的生日 身份證號碼中前6位為出生年月日信息,其中前…

    編程 2025-04-28

發表回復

登錄後才能評論