Bir haftanın aralığını almak için, haftanın ilk ve son gününü gösteren bir nesne oluşturun, ardından ayın yalnızca ayını çekin.
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"));
Ayrıca gün böyle çıkarabilir:
int weekStart = firstDay.getDayOfMonth();
int weekEnd = lastDay.getDayOfMonth();
Ardından yanı bir ay içinde hafta almak için aynı tekniği kullanabilirsiniz. '5 Eylül -
int firstWeekInMonth = new LocalDate().withMonthOfYear(month).withDayOfMonth(1).getWeekOfYear();
int lastWeekInMonth = new LocalDate().withMonthOfYear(month).dayOfMonth().withMaximalValue().getWeekOfYear();
Muhtemelen aksi takdirde '30 gibi şeyler alabilir, ayın aralığında kalacak başlangıç ve bitiş-tarihlerini sınırlamak isteyebilirsiniz.
Bu sadece başarısız her hafta bulmaya çalışmak olduğunu düşünüyorum soruyu cevaplayın (iyi bir ilham kaynağı olsa da), ancak 2 hata içerir: mantıksal olarak, haftanın geçtiği anlamına gelir. lastDay'den, kullanılmayan, ilk değil; Ayrıca, cevap undefined olan "month" değişkenini ifade eder. Açıkça (ama potansiyel olarak kafa karıştırıcı) hataları düzeltmeye yönelik girişimlerim huysuz yorumcular tarafından reddedildi. – Lambart
@Lambart gerçekten haklısınız.Hataları düzelttim ve bu soruya daha iyi cevap vereceğini umduğum bir paragraf ekledim. Editörlerin size izin vermesine izin vermeyin :) –
iyi düzenlemeler ve teşvik için teşekkürler. :) – Lambart