最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

public static void main(String[] args) {
		DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
	    try {
	        Date star = dft.parse("2020-02-03");//開始時間
	        Date endDay=dft.parse("2025-03-02");//結(jié)束時間
	        Date nextDay=star;
	        int i=0;
	        while(nextDay.before(endDay)){//當明天不在結(jié)束時間之前是終止循環(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();
	    }
	}

第三種:開始結(jié)束時間拆分為年月日,循環(huán)計算每年的天數(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++){
				//計算是否是瑞年
				if(i%4==0&&i%100!=0||i%400==0){
					days+=366;
				}else{
					days+=365;
				}
			}
		}
		//得到開始那一年已過去的日期
		int starday=days(star1[0],star1[1],star1[2]);
		//得到結(jié)束那一年已過去的日期
		int endday=days(end1[0],end1[1],end1[2]);
		//減去開始那一年已過去的日期,加上結(jié)束那一年已過去的日期
		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;
	}

第四種:以類的方式,計算給定日期到0001-01-01的總天數(shù),再以兩個日期的天數(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){//計算兩個日期之間的相距天數(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計算兩個日期之間相差天數(shù)的4種方法的文章就介紹到這了,更多相關(guān)java計算日期之間相差天數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Socket類以及ServerSocket類的實例講解

    基于Socket類以及ServerSocket類的實例講解

    下面小編就為大家?guī)硪黄赟ocket類以及ServerSocket類的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • spring boot攔截器的使用場景示例詳解

    spring boot攔截器的使用場景示例詳解

    這篇文章主要給大家介紹了關(guān)于spring boot攔截器的使用場景,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • mybatis向數(shù)據(jù)庫里插入記錄后自動返回記錄ID問題

    mybatis向數(shù)據(jù)庫里插入記錄后自動返回記錄ID問題

    本文介紹了在接手項目時,對一個業(yè)務處理邏輯進行重構(gòu)和性能優(yōu)化的經(jīng)歷,作者提到,性能問題可能是導致bug的一個重要原因,作者提到,在以前的.NET項目中,插入記錄后系統(tǒng)會自動刷新實體類,為其中的主鍵ID賦值,而SpringBoot項目mybatis也可以通過指定主鍵來優(yōu)化代碼
    2025-01-01
  • MyBatis自定義映射關(guān)系和關(guān)聯(lián)查詢實現(xiàn)方法詳解

    MyBatis自定義映射關(guān)系和關(guān)聯(lián)查詢實現(xiàn)方法詳解

    這篇文章主要介紹了MyBatis自定義映射關(guān)系和關(guān)聯(lián)查詢實現(xiàn)方法,當POJO屬性名與數(shù)據(jù)庫列名不一致時,需要自定義實體類和結(jié)果集的映射關(guān)系,在MyBatis注解開發(fā)中,使用@Results定義并使用自定義映射,使用 @ResultMap使用自定義映射
    2023-04-04
  • Java超詳細分析講解final關(guān)鍵字的用法

    Java超詳細分析講解final關(guān)鍵字的用法

    關(guān)于final關(guān)鍵字,它也是我們一個經(jīng)常用的關(guān)鍵字,可以修飾在類上、或者修飾在變量、方法上,以此看來定義它的一些不可變性!像我們經(jīng)常使用的String類中,它便是final來修飾的類,并且它的字符數(shù)組也是被final所修飾的。但是一些final的一些細節(jié)你真的了解過嗎
    2022-06-06
  • 解析使用jdbc,hibernate處理clob/blob字段的詳解

    解析使用jdbc,hibernate處理clob/blob字段的詳解

    本篇是對使用jdbc,hibernate處理clob/blob字段進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Java實現(xiàn)按比抽獎功能

    Java實現(xiàn)按比抽獎功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)按比抽獎功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • idea2023遠程調(diào)試springboot的過程詳解

    idea2023遠程調(diào)試springboot的過程詳解

    這篇文章主要介紹了idea2023遠程調(diào)試,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Java 靜態(tài)綁定與動態(tài)綁定深入分析

    Java 靜態(tài)綁定與動態(tài)綁定深入分析

    這篇文章主要介紹了Java 靜態(tài)綁定與動態(tài)綁定深入分析的相關(guān)資料,這里對java 的動態(tài)綁定和靜態(tài)綁定做了詳細的介紹,對其進行總結(jié)整理,需要的朋友可以參考下
    2016-11-11
  • MyBatis實戰(zhàn)之動態(tài)生成SQL詳解

    MyBatis實戰(zhàn)之動態(tài)生成SQL詳解

    這篇文章主要為大家詳細介紹了如何使用MyBatis實現(xiàn)動態(tài)生成SQL,可以告別硬編碼,擁抱智能SQL生成,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-07-07

最新評論

德昌县| 文成县| 波密县| 通化县| 郓城县| 永丰县| 库伦旗| 景谷| 留坝县| 泸州市| 东阿县| 福鼎市| 东丰县| 托里县| 桐梓县| 建宁县| 顺义区| 贵德县| 合作市| 民乐县| 浦江县| 会同县| 嵩明县| 望都县| 灌云县| 西乌| 寿宁县| 舞钢市| 蛟河市| 平定县| 湟中县| 海口市| 平阳县| 察雅县| 南靖县| 西乌珠穆沁旗| 大关县| 怀集县| 密山市| 松潘县| 庄河市|