Java:计算区间日期

问题

计算2016-02-22 到 2017-02-22 的每周星期三 具体是哪一天

java标志
image-2422

实现

需使用JDK1.8或以上.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

/**
 * 计算 2016-2-22 到 2017-2-22 的每周星期三 具体是哪一天
 *
 * @author puruidong
 * @version 2016.2.22
 */
public class Main {
    public static void main(String[] args) {
        //他想计算 2016-2-22 到 2017-2-22 的每周星期三 具体是哪一天
        LocalDate localDate = LocalDate.parse("2016-02-22");
        LocalDate endDate = LocalDate.parse("2017-02-22");
        List<LocalDate> lists = new ArrayList<>();
        while (localDate.isBefore(endDate)) {
            if (localDate.getDayOfWeek().getValue() == 3)
                lists.add(localDate);
            localDate = localDate.plusDays(1);
        }
        System.out.println("所有周三的日期,共有"+lists.size()+"天,具体如下:");
        lists.forEach(x -> System.out.println(x));
    }
}

运行结果:

所有周三的日期,共有52天,具体如下:
2016-02-24
2016-03-02
2016-03-09
2016-03-16
2016-03-23
2016-03-30
2016-04-06
2016-04-13
2016-04-20
2016-04-27
2016-05-04
2016-05-11
2016-05-18
2016-05-25
2016-06-01
2016-06-08
2016-06-15
2016-06-22
2016-06-29
2016-07-06
2016-07-13
2016-07-20
2016-07-27
2016-08-03
2016-08-10
2016-08-17
2016-08-24
2016-08-31
2016-09-07
2016-09-14
2016-09-21
2016-09-28
2016-10-05
2016-10-12
2016-10-19
2016-10-26
2016-11-02
2016-11-09
2016-11-16
2016-11-23
2016-11-30
2016-12-07
2016-12-14
2016-12-21
2016-12-28
2017-01-04
2017-01-11
2017-01-18
2017-01-25
2017-02-01
2017-02-08
2017-02-15

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据