Java 判断传入时间到传入月份最后一天还剩几天,及对应天数的集合
时间: 2023-08-16 15:06:59 浏览: 69
Java调用存储过程--传入集合参数
3星 · 编辑精心推荐
可以使用 Java 中的 Calendar 类来实现这个功能,具体实现过程如下:
```java
import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
public class LastDayOfMonth {
public static Set<Integer> daysLeftInMonth(int year, int month, int day) {
Set<Integer> days = new HashSet<>();
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, day); // 设置日期为传入的年、月、日
int lastDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); // 获取该月份的最后一天
int daysLeft = lastDayOfMonth - day; // 计算到最后一天还剩余的天数
for (int i = daysLeft; i >= 0; i--) {
days.add(day + i); // 将每一天添加到集合中
}
return days;
}
public static void main(String[] args) {
int year = 2021;
int month = 8;
int day = 15;
Set<Integer> days = daysLeftInMonth(year, month, day);
System.out.println(days);
}
}
```
上面的代码中,我们定义了一个 `daysLeftInMonth` 方法,该方法接收三个参数:年、月、日。该方法返回一个整数集合,表示从传入时间到传入月份最后一天还剩余的天数对应的天数集合。
首先,我们使用 Calendar 类创建一个 Calendar 对象,并设置为传入的年、月、日。然后,我们使用 `getActualMaximum` 方法获取该月份的最后一天。接着,我们计算到最后一天还剩余的天数,并使用循环将每一天添加到集合中。
最后,我们在 `main` 方法中调用 `daysLeftInMonth` 方法,并输出返回的集合结果。如果传入的时间为 2021 年 8 月 15 日,则输出结果为:
```
[15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
```
表示从该时间到该月份最后一天还剩余的天数对应的天数集合为上述结果。
阅读全文