java - 如何获得当前日期之前的最后一个星期日?

标签 java android calendar

<分区>

我有以下代码用于获取当前日期之前的最后一个星期日:

Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.WEEK_OF_YEAR, calendar.get(Calendar.WEEK_OF_YEAR)-1);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Log.e("first day", String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)));

但是这段代码不起作用。请告诉我,我该如何解决?

最佳答案

java.time.temporal.TemporalAdjuster

这可以通过 TemporalAdjuster 轻松实现在 TemporalAdjusters 中找到实现连同 DayOfWeek枚举。具体来说,previous​(DayOfWeek dayOfWeek) .

 LocalDate
 .now()
 .with(
     TemporalAdjusters.previous( DayOfWeek.SUNDAY )
 ) ;

如果今天是星期天,并且您希望结果是今天而不是一周前,请调用 previousOrSame​(DayOfWeek dayOfWeek) .

 LocalDate
 .now()
 .with(
     TemporalAdjusters.previousOrSame( DayOfWeek.SUNDAY )
 ) ;

这些类内置于 Java 8 及更高版本中,并内置于 Android 26 及更高版本中。对于 Java 6 和 7,大部分功能都在 ThreeTen-Backport 中向后移植.对于早期的 Android,请参阅 ThreeTenABP .

关于java - 如何获得当前日期之前的最后一个星期日?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783102/

相关文章:

Android ndk r7,Windows 上的 ffmpeg

java - 登录按钮 facebook android 不会重定向到新 Activity

java - 如何创建一个 void 函数来列出 13 号下一个 13 星期五

android - 如何使 Tab Widgets 中的文本占两行?

html - 在 Rails 中创建类似背包的日历

java - 如何将日期和时间转换为用户时区

java - 如何将HashMap存储到值为Array的数据库中?

java - 在java中使用正则表达式进行数学表达式?

java - ' (' or ' ['预期

java - 如何创建包含从 1 到 n 的所有数字的二叉搜索树