我的問題是我需要知道有多少週末是2日期間以下的數量。 由於我對我的解決方案不滿意,我問了一下。我如何才能找到週末betwee 2個日期
int numberOfWeekendContained(LocalDate start, LocalDate end) {
int weekends = 0;
for (LocalDate day = startTime.toLocalDate(); !day.isAfter(end); day = day.plusDays(1)) {
LocalDate previousDay = day.minusDays(1);
if (isWeekEnd(day) && (!isWeekEnd(previousDay) || !isInRange(previousDay, start, end))) {
weekends++;
}
}
return weekends;
}
private static boolean isWeekEnd(LocalDate day) {
return DayOfWeek.SATURDAY.equals(day.getDayOfWeek()) || DayOfWeek.SUNDAY.equals(day.getDayOfWeek());
}
private static boolean isInRange(LocalDate day, LocalDate start, LocalDate end) {
return !day.isBefore(start) && !day.isAfter(end);
}
週日或週六算作整個週末。也就是說,如果我的範圍從週日到週一,我有1個週末。如果從週日去下週六,他會成爲2
我真的不喜歡的,如果這是在我看來是複雜的第一眼就被理解。
有沒有人一個想法如何使這一清潔?
檢查開始和結束是週末,然後檢查其間週末他們的數量(以及如果兩個天都'> 5'否則,您不能有超過1個週末)。 – Rogue
1)找到第一個日期的DOW。 2)找到第二個日期的DOW。 3)查找中間的天數。 3)我們知道一週有7天 - 應用數學。 –
你能找到某一日期的一週嗎?如果是這樣,我認爲你只是找到兩者之間的絕對差異。顯然,跨越多個年度變得困難,但 –