获取两个日期选择器和 7 个复选框范围内的所有特定星期几
Get all specific week days within the range of two date choosers and 7 checkboxes
我有 2 个 JDateChooser 控件和 7 个 JCheckBox
控件。
日期选择器将设置两个日期之间的范围,7 个复选框将筛选日期。
这 7 个复选框是:
周一、周二、周三、周四、周五、周六、周日
例如:
- 我 select 2021 年 10 月 1 日,从第一个日期选择器开始。
- 我 select 2021 年 10 月 8 日,从第二个日期选择器开始。
- 我 select 星期一和星期二从复选框。
输出将是日期范围为 2021 年 10 月 1 日 - 2021 年 10 月 8 日的所有星期一和星期二。
我到处搜索但没有答案,我什至不知道从哪里开始。
显然是功课,所以我会很简短,足以为您指明正确的方向,同时让您实际自己完成作业。
很明显您会在一周中的几天使用复选框小部件,而不是 combo box。
使用 LocalDate
class 作为日期。使用 plusDays
方法从一个日期移动到另一个日期。使用 getDayOfWeek
测试每个对象以匹配 DayOfWeek
个对象。使用 EnumSet
及其 contains
方法进行检查。
使用 ArrayList< LocalDate >
收集您想记住的日期。
通过调用 List.copyOf
使完成的列表不可修改。
使用 DateTimeFormatter
报告收集到的 LocalDate
个对象的值。要自动本地化,请使用 .ofLocalizedDate
.
在高级 Java 中,我们可能会做一些未经测试的代码。
List< LocalDate > dates =
LocalDate.of( 2021 , 10 , 1 )
.datesUntil( LocalDate.of( 2021 , 10 , 8 ) )
.filter(
localDate -> EnumSet.of( DayOfWeek.TUESDAY , DayOfWeek.THURSDAY ).contains( localDate.getDayOfWeek() )
)
.toList()
;
我有 2 个 JDateChooser 控件和 7 个 JCheckBox
控件。
日期选择器将设置两个日期之间的范围,7 个复选框将筛选日期。
这 7 个复选框是: 周一、周二、周三、周四、周五、周六、周日
例如:
- 我 select 2021 年 10 月 1 日,从第一个日期选择器开始。
- 我 select 2021 年 10 月 8 日,从第二个日期选择器开始。
- 我 select 星期一和星期二从复选框。
输出将是日期范围为 2021 年 10 月 1 日 - 2021 年 10 月 8 日的所有星期一和星期二。
我到处搜索但没有答案,我什至不知道从哪里开始。
显然是功课,所以我会很简短,足以为您指明正确的方向,同时让您实际自己完成作业。
很明显您会在一周中的几天使用复选框小部件,而不是 combo box。
使用 LocalDate
class 作为日期。使用 plusDays
方法从一个日期移动到另一个日期。使用 getDayOfWeek
测试每个对象以匹配 DayOfWeek
个对象。使用 EnumSet
及其 contains
方法进行检查。
使用 ArrayList< LocalDate >
收集您想记住的日期。
通过调用 List.copyOf
使完成的列表不可修改。
使用 DateTimeFormatter
报告收集到的 LocalDate
个对象的值。要自动本地化,请使用 .ofLocalizedDate
.
在高级 Java 中,我们可能会做一些未经测试的代码。
List< LocalDate > dates =
LocalDate.of( 2021 , 10 , 1 )
.datesUntil( LocalDate.of( 2021 , 10 , 8 ) )
.filter(
localDate -> EnumSet.of( DayOfWeek.TUESDAY , DayOfWeek.THURSDAY ).contains( localDate.getDayOfWeek() )
)
.toList()
;