欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java計(jì)算兩個(gè)日期之間相差天數(shù)的4種方法詳解

 更新時(shí)間:2023年09月04日 08:41:09   作者:是小李呀~  
這篇文章主要給大家介紹了關(guān)于java計(jì)算兩個(gè)日期之間相差天數(shù)的4種方法,本文簡(jiǎn)短地介紹java中多種方式求兩個(gè)日期的差量,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

計(jì)算兩個(gè)日期之間相差的天數(shù)的四種方法

第一種:時(shí)間戳的方式,計(jì)算兩個(gè)日期的時(shí)間戳的差,再除當(dāng)天的毫秒數(shù)即可得到相差的天數(shù)。

public static void main(String[] args) {
		DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
		 try {
		        Date star = dft.parse("2020-02-03");//開(kāi)始時(shí)間
		        Date endDay=dft.parse("2025-03-02");//結(jié)束時(shí)間
		        Long starTime=star.getTime();
		        Long endTime=endDay.getTime();
		        Long num=endTime-starTime;//時(shí)間戳相差的毫秒數(shù)
		        System.out.println("相差天數(shù)為:"+num/24/60/60/1000);//除以一天的毫秒數(shù)
		 } catch (ParseException e) {
		        e.printStackTrace();
		    }
	}

第二種:試用util包的Calendar類,每次增加一天,知道和結(jié)束時(shí)間相等的時(shí)候。

public static void main(String[] args) {
		DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
	    try {
	        Date star = dft.parse("2020-02-03");//開(kāi)始時(shí)間
	        Date endDay=dft.parse("2025-03-02");//結(jié)束時(shí)間
	        Date nextDay=star;
	        int i=0;
	        while(nextDay.before(endDay)){//當(dāng)明天不在結(jié)束時(shí)間之前是終止循環(huán)
	        	Calendar cld = Calendar.getInstance();
	 	        cld.setTime(star);
	 	        cld.add(Calendar.DATE, 1);
	 	        star = cld.getTime();
	 	        //獲得下一天日期字符串
	 	        nextDay = star; 
	 	        i++;
	        }
	       System.out.println("相差天數(shù)為:"+i);
	    } catch (ParseException e) {
	        e.printStackTrace();
	    }
	}

第三種:開(kāi)始結(jié)束時(shí)間拆分為年月日,循環(huán)計(jì)算每年的天數(shù)和月日的天數(shù),邏輯相加減。

public static void main(String[] args) {
		String star="2020-02-03";
		String end="2025-03-02";
		String[] star1=star.split("-");
		String[] end1=end.split("-");
		int days=0;
		if(Integer.parseInt(star1[0])<Integer.parseInt(end1[0])){
			for(int i=Integer.parseInt(star1[0]);i<Integer.parseInt(end1[0]);i++){
				//計(jì)算是否是瑞年
				if(i%4==0&&i%100!=0||i%400==0){
					days+=366;
				}else{
					days+=365;
				}
			}
		}
		//得到開(kāi)始那一年已過(guò)去的日期
		int starday=days(star1[0],star1[1],star1[2]);
		//得到結(jié)束那一年已過(guò)去的日期
		int endday=days(end1[0],end1[1],end1[2]);
		//減去開(kāi)始那一年已過(guò)去的日期,加上結(jié)束那一年已過(guò)去的日期
		days=days-starday+endday;
		System.out.println("相差的天數(shù):"+days);
	}
	public static int days(String year,String month,String day){
		int days=0;
		int nowyear=Integer.parseInt(year);
		int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};
		int[] monthday1={0,31,29,31,30,31,30,31,31,30,31,30,31};
		boolean flag=true;
		if(nowyear%4==0&&nowyear%100!=0||nowyear%400==0){
		}else{
			flag=false;
		}
		for(int i=0;i<Integer.parseInt(month);i++){
			if(flag){
				days+=monthday1[i];
			}else{
				days+=monthday[i];
			}
		}
		days+=Integer.parseInt(day);
		return days;
	}

第四種:以類的方式,計(jì)算給定日期到0001-01-01的總天數(shù),再以兩個(gè)日期的天數(shù)作差得到相差天數(shù)。

int y;
	int m;
	int d;
	public test2(int y,int m,int d ){
		this.y=y;
		this.m=m;
		this.d=d;
	}
	public int sum(test2 d){
		int day=0;
		int[] x={0,31,28,31,30,31,30,31,31,30,31,30,31};
		for(int i=1;i<d.y;i++){
			if(i%4==0&& i%100!=0 || i%400==0){
				day+=366;
			}else{
				day+=365;
			}
		}
		if(d.y%4==0&& d.y%100!=0 || d.y%400==0){
			x[2]=29;
		}
		for(int i=1;i<d.m;i++){
			day+=x[i];	
		}
		day+=d.d;
		System.out.println(day);
		return day;
	}
	public int DiffDays(test2 d){//計(jì)算兩個(gè)日期之間的相距天數(shù)的成員方法 
		int s1=sum(this);
		int s2=sum(d);
		if(s1>s2){
			return s1-s2;
		}else{
			return s2-s1;
		}
	}
	public static void main(String args[]){ 
		int a,b,c; 
		test2 d1,d2; 
		try{ 
			d1=new test2(2020,02,03); 
			d2=new test2(2025,03,02); 
			System.out.println("相差的天數(shù):"+d1.DiffDays(d2)); 
		}catch(Exception e){ 
			System.out.println("error"); 
		} 
	}

總結(jié) 

到此這篇關(guān)于java計(jì)算兩個(gè)日期之間相差天數(shù)的4種方法的文章就介紹到這了,更多相關(guān)java計(jì)算日期之間相差天數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring事務(wù)管理零基礎(chǔ)入門

    Spring事務(wù)管理零基礎(chǔ)入門

    事務(wù)的作用就是為了保證用戶的每一個(gè)操作都是可靠的,事務(wù)中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就?回退到事務(wù)開(kāi)始未進(jìn)行操作的狀態(tài)。事務(wù)管理是Spring框架中最為常用的功能之一,我們?cè)谑褂肧pring?Boot開(kāi)發(fā)應(yīng)用時(shí),大部分情況下也都需要使用事務(wù)
    2022-10-10
  • 基于Zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)功能

    基于Zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)功能

    無(wú)論是采用SOA還是微服務(wù)架構(gòu),都需要使用服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)組件,本文將基于 Zookeeper 實(shí)現(xiàn)服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)功能,如果跟我一樣有同樣的困惑,希望可以通過(guò)本文了解其他組件如何使用 Zookeeper 作為注冊(cè)中心的工作原理
    2023-09-09
  • Java中獲取Class對(duì)象的三種方式詳解

    Java中獲取Class對(duì)象的三種方式詳解

    本文介紹了Java中獲取Class對(duì)象的三種常見(jiàn)方式:使用.class語(yǔ)法、使用Class.forName()方法以及使用.getClass()方法,需要的朋友可以參考下
    2023-12-12
  • Java中LocalCache本地緩存實(shí)現(xiàn)代碼

    Java中LocalCache本地緩存實(shí)現(xiàn)代碼

    本篇文章主要介紹了Java中LocalCache本地緩存實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Java中使用websocket實(shí)現(xiàn)在線聊天功能

    Java中使用websocket實(shí)現(xiàn)在線聊天功能

    這篇文章主要介紹了Java中使用websocket實(shí)現(xiàn)在線聊天功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Hibernate延遲加載原理與實(shí)現(xiàn)方法

    Hibernate延遲加載原理與實(shí)現(xiàn)方法

    這篇文章主要介紹了Hibernate延遲加載原理與實(shí)現(xiàn)方法,較為詳細(xì)的分析了Hibernate延遲加載的概念,原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-03-03
  • MyBatis?SqlSource源碼示例解析

    MyBatis?SqlSource源碼示例解析

    這篇文章主要為大家介紹了MyBatis?SqlSource源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java新手環(huán)境搭建 Tomcat安裝配置教程

    Java新手環(huán)境搭建 Tomcat安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了Java新手環(huán)境搭建的相關(guān)資料,Tomcat安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • springboot連接kafka集群的使用示例

    springboot連接kafka集群的使用示例

    在項(xiàng)目中使用kafka的場(chǎng)景有很多,尤其是實(shí)時(shí)產(chǎn)生的數(shù)據(jù)流,本文主要介紹了springboot連接kafka集群的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Java打印九九乘法表代碼詳情

    Java打印九九乘法表代碼詳情

    這篇文章主要介紹了Java打印九九乘法表,使用了雙重for循環(huán),使用do{}while()實(shí)現(xiàn)打印九九乘法表這些好玩的語(yǔ)法實(shí)現(xiàn),感興趣的小伙伴可參考下面文章內(nèi)容
    2021-09-09

最新評(píng)論