Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获得每月的第一个星期一和最后一个星期日,跨越月份边界_Java_Date - Fatal编程技术网

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并不是一个完全重复的问题。这个问题更为复杂,跨越了月份界限。