要檢索一週的範圍,只需創建一個指向一週的第一天和最後一天的對象,然後從該對象中抽出一天中的某一天。
int weekOfYear = 32;
LocalDate firstDay = new LocalDate().withWeekOfWeekyear(weekOfYear).withDayOfWeek(1);
LocalDate lastDay = new LocalDate().withWeekOfWeekyear(weekOfYear).withDayOfWeek(7);
System.out.println("Week of Year "+weekOfYear+"; "+firstDay.toString("d MMM")+" - "+lastDay.toString("d MMM"));
您也可以提取一天是這樣的:
int weekStart = firstDay.getDayOfMonth();
int weekEnd = lastDay.getDayOfMonth();
然後,您可以用同樣的方法在一個月內檢索周爲好。
int firstWeekInMonth = new LocalDate().withMonthOfYear(month).withDayOfMonth(1).getWeekOfYear();
int lastWeekInMonth = new LocalDate().withMonthOfYear(month).dayOfMonth().withMaximalValue().getWeekOfYear();
也許你可能要限制的開始和結束日期停留在每月的範圍內,否則你可能會得到像'30 - 9月5日」。
這不僅不能回答這個問題(雖然它提供了很好的靈感),但它包含2個錯誤:邏輯表明weekEnd意味着被派生出來從lastDay,這是未使用的,不是第一天;此外,答案指的是未定義的變量「月」。我試圖解決公然(但可能令人困惑)的錯誤被脾氣暴躁的評論者拒絕。 – Lambart 2014-05-04 00:52:33
@蘭巴特的確你是對的。我修復了錯誤並添加了一段,希望能更好地回答這個問題。不要讓編輯讓你失望:) – 2014-05-05 09:08:45
很好的編輯,並感謝您的鼓勵。 :) – Lambart 2014-05-05 18:25:57