问题
计算2016-02-22 到 2017-02-22 的每周星期三 具体是哪一天
实现
需使用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