java如何按照日期区间、选择任务类型、选择年、月、日来筛选查看任务数量
时间: 2023-09-17 10:13:08 浏览: 79
Java可以使用日期类(如java.util.Date、java.time.LocalDate等)和条件语句(如if语句、switch语句等)来实现按照日期区间、选择任务类型、选择年、月、日来筛选查看任务数量的功能。
首先,你需要定义一个任务类,包含任务名称、任务类型、任务创建时间等属性。然后,你可以使用日期类来表示任务的创建时间,例如:
```java
import java.time.LocalDate;
public class Task {
private String name;
private String type;
private LocalDate createDate;
// 构造方法和 getter/setter 略
}
```
接下来,你需要实现一个方法来统计指定日期区间、任务类型的任务数量,例如:
```java
public static int countTasks(List<Task> tasks, LocalDate startDate, LocalDate endDate, String type) {
int count = 0;
for (Task task : tasks) {
if (task.getType().equals(type) && task.getCreateDate().compareTo(startDate) >= 0 && task.getCreateDate().compareTo(endDate) <= 0) {
count++;
}
}
return count;
}
```
该方法接受一个任务列表、起始日期、结束日期、任务类型作为参数,遍历任务列表,统计符合条件的任务数量并返回。其中,使用了日期类的compareTo方法来比较日期大小。
最后,你可以根据需要实现选择年、月、日来筛选查看任务数量的功能,例如:
```java
public static void main(String[] args) {
List<Task> tasks = new ArrayList<>();
// 添加任务到列表中
// 统计指定日期区间、任务类型的任务数量
LocalDate startDate = LocalDate.of(2021, 1, 1);
LocalDate endDate = LocalDate.of(2021, 12, 31);
String type = "编程";
int count = countTasks(tasks, startDate, endDate, type);
System.out.println("任务数量:" + count);
// 筛选指定年份的任务数量
int year = 2021;
int yearCount = 0;
for (Task task : tasks) {
if (task.getCreateDate().getYear() == year) {
yearCount++;
}
}
System.out.println(year + "年任务数量:" + yearCount);
// 筛选指定月份的任务数量
int month = 1;
int monthCount = 0;
for (Task task : tasks) {
if (task.getCreateDate().getMonthValue() == month) {
monthCount++;
}
}
System.out.println(year + "年" + month + "月任务数量:" + monthCount);
// 筛选指定日期的任务数量
int day = 1;
int dayCount = 0;
for (Task task : tasks) {
if (task.getCreateDate().getDayOfMonth() == day) {
dayCount++;
}
}
System.out.println(year + "年" + month + "月" + day + "日任务数量:" + dayCount);
}
```
该程序首先统计指定日期区间、任务类型的任务数量,然后根据需要筛选指定年、月、日的任务数量并输出。
阅读全文