第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

與LocalDate#plusMonths方法配合使用的計算兩個日期之間的月數的方法?

與LocalDate#plusMonths方法配合使用的計算兩個日期之間的月數的方法?

Qyouu 2021-04-01 14:11:54
我需要根據自己的任務處理日期。準確地說,我需要檢查兩個日期之間的月份差是否為整數。2個日期輸入參數。結果-布爾值:true如果月份計數準確(無尾),false否則。例如:之間diff_months31.01.2018和28.02.2018應為1個月,這是可能的組合。30.01.2018和28.02.2018 : 1個月無尾,所以OK29.01.2018和28.02.2018 : 1個月無尾,所以OK28.01.2018和28.02.2018 : 1個月無尾,所以OK27.01.2018和28.02.2018 : 0個月讓我們再參數:28.02.2018和28.03.2018 : 1個月無尾,所以OK28.02.2018和29.03.2018 : 1個月1天,所以失敗28.02.2018和27.03.2018 : 0個月有尾巴,所以失敗我發(fā)現java date api具有用于日期計算的特殊API,但從我的角度來看,它的工作原理是矛盾的:LocalDate.of(2018, 1, 31).until(LocalDate.of(2018, 2, 28), ChronoUnit.MONTHS); //  0      LocalDate.of(2018, 1, 31).plusMonths(1); // but 2018-02-28第二個結果是預期的,但第一-不是??雌饋碚娴暮芷婀帧D芊窠ㄗh兩個日期之間的月份計算LocalDate#plusMonths方法與該方法一致?
查看完整描述

2 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

用日歷術語表示日期之間的差異是模棱兩可的。在Period1月31日和2月28日之間可以“10月日”或“0個月28天內”消費。這兩個答案都是正確的。


如果要實現確定兩個日期是否plusMonths對齊的特定邏輯,則java.time為您提供了所有工具。首先,獲取日期之間的月數,而不考慮該月中的哪幾天,然后用于plusMonths測試:


boolean isExactMonths(LocalDate a, LocalDate b) {

    long months = ChronoUnit.MONTHS.between(YearMonth.from(a), YearMonth.from(b));

    return a.plusMonths(months).equals(b);

}


查看完整回答
反對 回復 2021-04-21
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

喬達時間如預期般運作:

Months.monthsBetween(org.joda.time.LocalDate.parse("2018-1-31"),org.joda.time.LocalDate.parse("2018-2-28")).getMonths() //1



查看完整回答
反對 回復 2021-04-21
  • 2 回答
  • 0 關注
  • 536 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號