Skip to content
Snippets Groups Projects
Task.java 1.53 KiB
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);
	}
}