我希望建立一个函数,该函数返回一个数组,其中包含一年中前几个月的所有周数,这些周数与一个特定月份的周数相同。
我将星期一用作一周的第一天,并将本月的第一个星期一作为本月的第一周。
输入:一年中的一周和一年。例如,27 和 2019。七月的第一周(7)。
输出:月份的星期数组。例如,[2、6、10、14、19、23、27]。
我尝试的是:
private void getResult(int weekYear)
{
LocalDate date = LocalDate.now();
final int weekNumber = 27;
LocalDate newDate = date.with(IsoFields.WEEK_OF_WEEK_BASED_YEAR, weekNumber);
int month = newDate.getMonthValue();;
int weekMonth = LocalDate.from(newDate).get(WeekFields.ISO.weekOfMonth());
System.out.println(newDate);
System.out.println(month);
System.out.println(weekMonth);
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= month; i++)
{
LocalDate tempDate = date.withYear(2019).withMonth(i).with(WeekFields.ISO.weekOfMonth(), weekMonth);
int tempYear = LocalDate.from(tempDate).get(WeekFields.ISO.weekOfWeekBasedYear());
list.add(tempYear);
}
list.forEach((e) -> System.out.print(e + " "));
}
int weekYear = 27;
getResult(weekYear);
我得到的是:[1 6 10 14 18 23 27]。
我在找什么:我有两个问题:
第一个:得到的结果和预期的不一样。我认为问题是由于我没有指定如何计算该月的第一周(该月的第一个星期一)。这样对吗?我该如何解决?
第二个:什么是更好的解决方案?
慕码人8056858
相关分类