Java 获得每月的第一个星期一和最后一个星期日,跨越月份边界
我想得到第一个星期一和最后一个星期天,这两个星期与本月重叠,即使星期一或星期天不是本月的Java 获得每月的第一个星期一和最后一个星期日,跨越月份边界,java,date,Java,Date,我想得到第一个星期一和最后一个星期天,这两个星期与本月重叠,即使星期一或星期天不是本月的 例如,2017-04(4月),第一个星期一是3月27日,最后一个星期日是4月30日。如果您可以使用最新的Java 8方法,请查看所谓的时间调整器。特别是: 如果您可以使用最新的Java 8方法,请看一下所谓的时间调整器。特别是: 您可以使用Calendar并进行迭代以查找您要查找的日期,如:Calendar.getInstance().get(Calendar.MONDAY)和Calendar.getI
例如,2017-04(4月),第一个星期一是3月27日,最后一个星期日是4月30日。如果您可以使用最新的Java 8方法,请查看所谓的时间调整器。特别是:
如果您可以使用最新的Java 8方法,请看一下所谓的时间调整器。特别是:
您可以使用Calendar并进行迭代以查找您要查找的日期,如:
Calendar.getInstance().get(Calendar.MONDAY)
和Calendar.getInstance().get(Calendar.SUNDAY))
您可以使用Calendar并进行迭代以查找您要查找的日期,如:Calendar.getInstance().get(Calendar.MONDAY)
和Calendar.getInstance().get(Calendar.SUNDAY))代码>该接口为类提供了操作日期时间值的功能。该类提供了几个方便的实现
策略是首先确定当前日期。这需要一个时区。在任何一个特定的时刻,世界各地的日期都因地区而异
从今天开始,获取当前月份的第一天和最后一天。我们从每一个事件中询问我们所期望的一周中的前一天或下一天。我们也同意,每月的第一天或最后一天实际上可能是所需的一周中的某一天,这就是下文所示的临时调节器调用中的“或名称”的含义
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
LocalDate firstOfMonth = today.with( TemporalAdjusters.firstDayOfMonth() );
LocalDate monday = firstOfMonth.with( TemporalAdjusters.previousOrSame( DayOfWeek.MONDAY ) );
LocalDate endOfMonth = today.with( TemporalAdjusters.lastDayOfMonth() );
LocalDate sunday = endOfMonth.with( TemporalAdjusters.nextOrSame( DayOfWeek.SUNDAY ) );
顺便说一下,如果需要表示整个月份,请查看类。该接口为类提供了操作日期时间值的功能。该类提供了几个方便的实现
策略是首先确定当前日期。这需要一个时区。在任何一个特定的时刻,世界各地的日期都因地区而异
从今天开始,获取当前月份的第一天和最后一天。我们从每一个事件中询问我们所期望的一周中的前一天或下一天。我们也同意,每月的第一天或最后一天实际上可能是所需的一周中的某一天,这就是下文所示的临时调节器调用中的“或名称”的含义
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
LocalDate firstOfMonth = today.with( TemporalAdjusters.firstDayOfMonth() );
LocalDate monday = firstOfMonth.with( TemporalAdjusters.previousOrSame( DayOfWeek.MONDAY ) );
LocalDate endOfMonth = today.with( TemporalAdjusters.lastDayOfMonth() );
LocalDate sunday = endOfMonth.with( TemporalAdjusters.nextOrSame( DayOfWeek.SUNDAY ) );
顺便说一句,如果您需要表示整个月份,请查看类。麻烦的日历
现在是遗留的,被java.time类取代了。麻烦的日历
现在是遗留的,被java.time类取代了。@EduardoDennis不是完全重复的。这个问题更复杂,跨越了月份的界限。@Eduardodenni并不是一个完全重复的问题。这个问题更为复杂,跨越了月份界限。