我尝试搜索答案,但没有找到。
如果网站上没有显示日期,我想决定是否以及需要切换多少周。我尝试使用天数来实现。
LocalDate dateToSelect = parseStringDateToLocalDate(datum);
LocalDate lastVisibleOrderDate = getLastVisibleOrderDate();
int daysDifference = Period.between(lastVisibleOrderDate,dateToSelect).getDays();]
int weeksToSwitch = (daysDifference / 7) + 1;
并且带有周期:
Long weeks = ChronoUnit.WEEKS.between(lastVisibleOrderDate,dateToSelect);
然而,我无法解决如何考虑到7天的差异并仍然处于同一周的问题。
场景: 上一个可见日期 = 2017-03-12(星期日) 要选择的日期 = 2017-03-13(星期一)
差异=1。除以7=0,再加上1,所以切换到下一周。这很好!有效。
但是,如果要选择的日期是2017-03-19(星期日),则差异为7.除以7再加上1等于2。它将切换2周,但只需要切换1周。
它应该能够在周之间来回切换,因此在lastVisibleOrderDate上添加一天或在dateToSelect上减去1天会导致问题。
我可以这样做(对于正向切换),但这不是最好的选择,希望有更好的方法:
if (0 < daysDifference && daysDifference <= 7){
} else if (7 < daysDifference && daysDifference <=14){
} else if (14 < daysDifference && daysDifference <=21){
} else if (21 < daysDifference && daysDifference <=28){
}
有任何建议吗?
ChronoUnit.WEEKS::between
不是你想要的吗?你只解释了使用days/7
方法的问题,而没有提到使用WEEKS.get
方法的问题。 - undefined