Java日历: I want to remove specific Day of week from calendar

标签 java date-range weekday java-calendar

更多详细信息,我想去掉一周中的特定日期。

我的意思是:{Sat(1), Sun(2), Mon(3) , Tues(4) , Wed (5),Thurs(6) ,Fri(7)} .

删除工作日:{Sat(1), Sun(2), Mon(3) , Tues(4) , Wed (5)} .

这样我就可以获得从特定开始日期到现在的日期(不包括排除天数)的天数。

提示:我必须使用 Java 日历

问题是动态指定日期

最佳答案

如果您可以使用 LocalDate 和流,您就可以应用函数式方法。

LocalDate start = LocalDate.of(2015, 2, 1);
LocalDate end = LocalDate.of(2015, 2, 28);

List<DayOfWeek> includedDays = Arrays.asList(DayOfWeek.THURSDAY, DayOfWeek.FRIDAY);

long daysCount = Stream.iterate(start, date -> date.plusDays(1))
        .limit(ChronoUnit.DAYS.between(start, end))
        .filter(d -> includedDays.contains(d.getDayOfWeek()))
        .count();

如果您坚持使用日历,只需使用:

GregorianCalendar calendarStart = new GregorianCalendar(2015, 2, 1);
GregorianCalendar calendarEnd = new GregorianCalendar(2015, 2, 28);

List<Integer> includedDays = Arrays.asList(GregorianCalendar.THURSDAY, GregorianCalendar.FRIDAY);
long count = 0;
while(!calendarStart.equals(calendarEnd)) {
    if(includedDays.contains(calendarStart.get(Calendar.DAY_OF_WEEK))) {
        count ++;
    }
    calendarStart.add(Calendar.DATE, 1);
}

关于Java日历: I want to remove specific Day of week from calendar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45323006/

相关文章:

swift - 从 NSCalendar.dateFromComponents 获取奇怪的日期

ios - 如何获取一周内每一天的顺序?

sql - PLSQL - 如何查找给定日期的星期一和星期五

java - 输入 channel 订阅者无法使用 Spring Cloud 数据流中的自定义接收器

google-apps-script - 改为24小时。 DateRangeFilter 的模式

javascript - 如何将filament的daterangepicker与新的jquery一起使用?

mysql - 将日期时间条目与具有多个时间范围的表相匹配

java - Grails 在新服务器上启动时卡住

java - 使用 corejava 程序进行无密码的 MySQL 连接(用户 'root' @'localhost' 的访问被拒绝)

java - 与从 Java 应用程序调用的 Powershell 进程交互