在Android上开始和结束一周

我想知道如何计算当周的开始和结束日期? 我发现它没有在标准的android库中实现,也没有在date4j这样的lib中实现。

如果有一些简单明了的方法来实现这个? 或者我必须再次实施自行车?

谢谢。

也许MonthDisplayHelper对您有所帮助。

祝你好运!

使用date4j执行此操作不需要太多代码。 计算一周的第一天的示例:

private void firstDayOfThisWeek(){ DateTime today = DateTime.today(TimeZone.getDefault()); DateTime firstDayThisWeek = today; //start value int todaysWeekday = today.getWeekDay(); int SUNDAY = 1; if(todaysWeekday > SUNDAY){ int numDaysFromSunday = todaysWeekday - SUNDAY; firstDayThisWeek = today.minusDays(numDaysFromSunday); } System.out.println("The first day of this week is : " + firstDayThisWeek); } 

以上是周日是本周开始的惯例。 在某些司法管辖区,该惯例不适用,因此您需要更改此类案例的代码。

尝试java.util.Calendar.getFirstDayOfWeek()…然后很容易计算一周的最后一天: http : //developer.android.com/reference/java/util/Calendar.html#getFirstDayOfWeek ()

使用Joda-Time 2.3库,这种日期时间工作通常更容易。

从这个答案中得到一个类似的问题。

 LocalDate now = new LocalDate(); System.out.println( now.withDayOfWeek(DateTimeConstants.MONDAY) ); System.out.println( now.withDayOfWeek(DateTimeConstants.SUNDAY) ); 

你可以调用isBefore / isAfter和minusWeeks / plusWeeks来获取过去/未来的值。

这对我有用……

 Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); cal.set(Calendar.DAY_OF_WEEK, cal.MONDAY); String firstWkDay = String.valueOf(cal.getTime()); //cal.set(Calendar.DAY_OF_WEEK, cal.SUNDAY); cal.add(Calendar.DAY_OF_WEEK, 6); String lastWkDay = String.valueOf(cal.getTime()); 

对于一周的最后一天,您可以使用cal.set(Calendar.DAY_OF_WEEK, cal.SUNDAY); 但它会在某些设备上返回上一个星期日

这是我一直用来获取日期:

  Calendar c = Calendar.getInstance(); c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); c.setFirstDayOfWeek(Calendar.MONDAY); startOfWeek = c.getTime();