Java两个日期相差的天数计算
生活随笔
收集整理的這篇文章主要介紹了
Java两个日期相差的天数计算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫一道java題目:
求兩個日期之間相隔的天數,寫一個方法(例如:fun3("2010.09.20","2010.09.21") ),求輸入的字符串2010.09.20 與 2010.09.21 之間相隔的天數.
看了一圈,很多方法,下面是兩種比較簡單的:
一:調工具類方法:ChronoUnit.DAYS.between(time1, time2),time1,time2是兩個要算天數的間隔的LocalDate對象。
二:用時間戳計算
完整代碼如下:
package Q15;import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.Date;/*** 15. 求兩個日期之間相隔的天數* 寫一個方法(例如:fun3("2010-09-20","2010-09-21") ),* 求輸入的字符串2010-09-20 與 2010-09-21 之間相隔的天數*/ public class Time {public static void main(String[] args) { // String s1="2010-09-20"; // String s2="2010-09-29";String s1="2010.09.20";String s2="2010.09.29";Time time = new Time();System.out.println("兩個時間間隔天數為:"+time.fun(s1,s2));System.out.println("兩個時間間隔天數為:"+time.fun1(s1,s2));try {int between = time.fun2(s1, s2);System.out.println("兩個時間間隔天數為:"+between);} catch (ParseException e) {e.printStackTrace();}}//法一:public int fun(String s1,String s2){//ctrl+alt+/提示方法參數//指定日期格式DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");//按照指定格式轉化為LocalDate對象LocalDate time1 = LocalDate.parse(s1,dateTimeFormatter);LocalDate time2 = LocalDate.parse(s2,dateTimeFormatter);//調方法計算兩個LocalDate的天數差long between = ChronoUnit.DAYS.between(time1, time2);return (int)between;}//法二:時間戳1public int fun1(String s1,String s2){//指定格式DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy.MM.dd");//轉為localDateLocalDate time1 = LocalDate.parse(s1,dtf);LocalDate time2 = LocalDate.parse(s2,dtf);//從localDate獲取時間戳long t1 = time1.atStartOfDay().toInstant(ZoneOffset.ofHours(8)).toEpochMilli();long t2 = time2.atStartOfDay().toInstant(ZoneOffset.ofHours(8)).toEpochMilli();int between =(int)(t2 - t1) / 24 / 60 / 60 / 1000;return between;}//法二:用Date獲取時間戳2public int fun2(String s1,String s2) throws ParseException {//指定格式SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");//獲取DateDate t1 = simpleDateFormat.parse(s1);Date t2 = simpleDateFormat.parse(s2);//獲取時間戳long time1 = t1.getTime();long time2 = t2.getTime();//返回相差天數return (int)(time2-time1)/24/60/60/1000;} }總結
以上是生活随笔為你收集整理的Java两个日期相差的天数计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: npm本地发包过程
- 下一篇: 人工智能人才缺口达500万,北京大学、天