亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Java - 計算時間間隔內每月發生的日期

Java - 計算時間間隔內每月發生的日期

慕村225694 2022-07-14 09:51:35
我正在使用 Java 8,我需要計算索引 = x 的時間間隔內有多少天。示例:從 2019 年 1 月 1 日到 2019 年 1 月 31 日,我們在第 1 天出現了 1 次。我不想要天的范圍,只想要 X 天的計數 如果它是一個月的最后一天,我想把它們都計算在內 例如:30 +30 +31+28
查看完整描述

1 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

試試這個方法:


public static int getDateCount(LocalDate startDate, LocalDate endDate, final int index) {

        long numOfDaysBetween = ChronoUnit.DAYS.between(startDate, endDate);

        return IntStream.iterate(0, i -> i + 1)

                .limit(numOfDaysBetween)

                .mapToObj(i -> startDate.plusDays(i))

                .filter(i -> i.getDayOfMonth() == index)

                .collect(Collectors.toList()).size();

    }

用法:


public static void main(String[] args){

        LocalDate startDate = LocalDate.of(2019,1,1);

        LocalDate endDate = LocalDate.of(2019,1,31);

        int index=1;


        System.out.println(getDateCount(startDate,endDate,index));

    }

輸出:


1


在這里,我首先計算兩個日期之間的天數,然后提取這些日期之間發生的所有天數,然后將它們過濾到所需的日期,例如在這種情況下為 1。


注意:這可能不是最好和有效的解決方案


查看完整回答
反對 回復 2022-07-14
  • 1 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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