【发布时间】:2016-12-18 17:18:24
【问题描述】:
如何计算 Android 中两个日期之间的周数?我做过这样的事情
int week1 = calendar1.get(Calendar.WEEK_OF_YEAR);
int week2 = calendar2.get(Calendar.WEEK_OF_YEAR);
int calendarWeekDifference = week2 - week1;
但是,当两个日期在不同年份时,这不起作用。我怎样才能实现一个解决方案,以便它可以跨越不同的年份?
编辑
我已尝试使用 Joda-Time 执行以下操作:
public static int weeksTouched(Calendar fromDate, Calendar toDate){
DateTime fromDateTime = new DateTime(fromDate);
DateTime toDateTime = new DateTime(toDate);
DateTime epoch = new DateTime(0);
Weeks fromWeeks = Weeks.weeksBetween(epoch, fromDateTime);
Weeks toWeeks = Weeks.weeksBetween(epoch, toDateTime);
int betweenWeeks = toWeeks.getWeeks() - fromWeeks.getWeeks();
return betweenWeeks;
}
这几乎可行,但由于某种原因,它认为一周的开始是星期四。我希望一周的开始是星期一,这样星期一到下星期六将返回 0(同一周),但星期六到下一天星期日将返回 1(不同的星期)。
【问题讨论】:
-
周六到周日是 1 天,但一周不同,那是 1 周吗?周日到周六相隔 6 天,但同一周,那是 0 周吗?
-
@Andreas 没错
-
如果添加第三方库不是问题,您可以使用 JodaTime 完成此操作。看看这个答案:stackoverflow.com/a/24265259/4872155
-
只需获取两个日期之间的天数,然后将其除以 7。然后检查余数,如果商有 +1 则