在 Java 中,我可以通过以下方式获取该月的第一天:
GregorianCalendar date;
// Some code
int first = new GregorianCalendar(date.get(Calendar.YEAR),
date.get(Calendar.MONTH), 1).get(Calendar.DAY_OF_WEEK);
我想知道是否有一个函数可以直接执行此操作,因为我找不到获取此重要信息的函数。
类似于我在这里尝试做的事情:
for (int i = 1; i < days_in_month + first; i++) {
// Some code
if (i - first + 1 == date.get(Calendar.DAY_OF_MONTH)) {
// Do something
}
}
最佳答案
您可以将 GregorianCalendar
对象转换为 LocalDate
对象并使用它方便的 API:
LocalDate getWithFirstDayOfMonth(GregorianCalendar c) {
LocalDate date = c.toZonedDateTime().toLocalDate();
return date.withDayOfMonth(1);
}
GregorianCalendar calendar = GregorianCalendar.from(ZonedDateTime.now());
LocalDate first = getWithFirstDayOfMonth(calendar);
System.out.println(first.getDayOfMonth());
关于java - 有没有提供每月第一天的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48309308/