package tp03.ex02; import java.time.LocalDate; public class Task { private int taskID; private LocalDate creationDate; private LocalDate deadline; private TaskStatus status; private String description; private int duration; private static int counter = 0; public Task(String description, int duration) { this.taskID = Task.counter; Task.counter++; this.creationDate = LocalDate.now(); this.deadline = this.creationDate.plusDays(10); this.duration = duration; this.description = description; this.status = TaskStatus.TODO; } public Task(String description, LocalDate creation, LocalDate deadline, int duration) { this.taskID = Task.counter= Task.counter++; this.creationDate = creation; this.deadline = deadline; this.duration = duration; this.description = description; this.status = TaskStatus.TODO; } public String toString() { return "T" + this.taskID + " = " + this.description + ":" + this.status + "(" + this.duration + "):" + this.deadline; } public void changeStatus(TaskStatus st) { this.status = st; } public void changeStatus() { for (int i = 0; i < TaskStatus.values().length; i++) { if (TaskStatus.values()[i].equals(this.status)) { // Use modulo to avoid errors this.status = TaskStatus.values()[i+1 % TaskStatus.values().length - 1]; } } } public boolean isLate() { LocalDate now = LocalDate.now(); if (this.deadline.compareTo(now) < 0) { return true; } return false; } public void delay(int nbDays) { this.deadline = this.deadline.plusDays(nbDays); } }