for (LocalDate date = firstOfMonth; !date.isAfter(lastOfMonth); date = date.plusDays(1)) {
dates.add(date);
}获取日期对应的星期数
可以使用Java 8的DayOfWeek枚举类来获取日期对应的星期数。具体实现如下:
for (LocalDate date : dates) {
DayOfWeek dayOfWeek = date.getDayOfWeek();
int weekNumber = dayOfWeek.getValue(); // 获取星期数,1表示星期一,7表示星期日
// 打印日期和对应的星期数
System.out.println(date + " " + weekNumber);
}
DayOfWeek转成中文
要将DayOfWeek枚举类型转换成中文,可以使用一个Map来存储英文和中文的对应关系,然后根据DayOfWeek的name()方法获取英文名称,再通过Map查找对应的中文名称。具体实现如下:
// 定义英文和中文的对应关系
Map<String, String> dayOfWeekMap = new HashMap<>();
dayOfWeekMap.put("MONDAY", "星期一");
dayOfWeekMap.put("TUESDAY", "星期二");
dayOfWeekMap.put("WEDNESDAY", "星期三");
dayOfWeekMap.put("THURSDAY", "星期四");
dayOfWeekMap.put("FRIDAY", "星期五");
dayOfWeekMap.put("SATURDAY", "星期六");
dayOfWeekMap.put("SUNDAY", "星期日");
for (LocalDate date : dates) {
DayOfWeek dayOfWeek = date.getDayOfWeek();
String weekName = dayOfWeekMap.get(dayOfWeek.name()); // 获取中文名称
// 打印日期和对应的星期数(中文形式)
System.out.println(date + " " + weekName);
}
注意,DayOfWeek的name()方法返回的是枚举类型的英文名称,所以需要将其转换成大写形式与Map中的键匹配。
2023-04-23转为4.23
可以使用Java 8的DateTimeFormatter类来将日期格式化成指定的字符串形式。具体实现如下:
// 定义日期格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M.dd");
// 解析日期字符串
LocalDate date = LocalDate.parse("2023-04-23");
// 格式化成指定的字符串形式
String result = date.format(formatter);
System.out.println(result); // 输出:4.23
在上面的代码中,我们使用ofPattern()方法创建了一个日期格式化器,该格式化器的格式为"M.dd",其中M表示月份(1~12),dd表示日期(01~31)。然后我们使用parse()方法将日期字符串解析成LocalDate对象,最后使用format()方法将日期格式化成指定的字符串形式。