找出并打印2023年休息日日期号中出现最多的全部日期号
时间: 2023-10-27 18:04:32 浏览: 30
以下是一个解决方案,使用Java中的Calendar类和HashMap来实现:
```java
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
public class HolidayAnalyzer {
public static void main(String[] args) {
// 设置日期范围
Calendar start = Calendar.getInstance();
start.set(2023, Calendar.JANUARY, 1);
Calendar end = Calendar.getInstance();
end.set(2023, Calendar.DECEMBER, 31);
// 统计每个日期号的出现次数
Map<Integer, Integer> dateCount = new HashMap<>();
while (!start.after(end)) {
int date = start.get(Calendar.DATE);
int dayOfWeek = start.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {
// 跳过周末
start.add(Calendar.DAY_OF_MONTH, 1);
continue;
}
int count = dateCount.getOrDefault(date, 0);
dateCount.put(date, count + 1);
start.add(Calendar.DAY_OF_MONTH, 1);
}
// 找到出现次数最多的日期号
int maxCount = 0;
for (int count : dateCount.values()) {
if (count > maxCount) {
maxCount = count;
}
}
// 打印出现次数最多的日期号
System.out.print("出现次数最多的日期号:");
for (Map.Entry<Integer, Integer> entry : dateCount.entrySet()) {
if (entry.getValue() == maxCount) {
System.out.print(entry.getKey() + " ");
}
}
}
}
```
在上面的代码中,我们首先设置了2023年的起始日期和结束日期。然后,我们使用一个while循环遍历这个日期范围内的每一天。对于每一天,我们使用Calendar类的get方法来获取这一天的日期号和星期几。如果这一天是周末,则跳过;否则,我们使用HashMap来统计每个日期号出现的次数。最后,我们在HashMap中找到出现次数最多的日期号,并将其打印出来。
你可以根据自己的需要修改日期范围和输出方式。