Skip to content

Commit

Permalink
Merge branch 'branch-Level-8'
Browse files Browse the repository at this point in the history
  • Loading branch information
qwertybox123 committed Sep 6, 2023
2 parents 38d4be0 + d2a5f97 commit 6656f9e
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 17 deletions.
16 changes: 11 additions & 5 deletions src/main/java/Deadline.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Deadline extends Tasks {
private String deadline;
private LocalDate deadline;

public Deadline(String name, boolean isMarked, String deadline) {


public Deadline(String name, boolean isMarked, LocalDate deadline) {
super(name, isMarked);
this.deadline = deadline;
}

public String getDeadline() {


public LocalDate getDeadline() {
return deadline;
}

public void setDeadline(String deadline) {
public void setDeadline(LocalDate deadline) {
this.deadline = deadline;
}

@Override
public String toString() {
String status = isMarked ? "[X]" : "[ ]";
return "[D]" + status + " " + name + " (by: " + deadline + ")";
return "[D]" + status + " " + name + " (by: " + deadline.format(DateTimeFormatter.ofPattern("MMM d yyyy")) + ")";
}
}
34 changes: 23 additions & 11 deletions src/main/java/Duke.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import java.util.Scanner;
import java.util.ArrayList;
import java.io.File;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
Expand All @@ -13,7 +17,7 @@ public class Duke {

public static void main(String[] args) {
String name = "Johnnythesnake";
System.out.println("Hello I'm " + name + "\n" + "What can I do for you?");
System.out.println("Hello I'm " + name + "\n" + "What can I do for you? Aside from completing your CS2103 project for you");
Scanner scanner = new Scanner(System.in);
String filename = "tasks.txt";
// Create a File object with the filename
Expand All @@ -25,7 +29,7 @@ public static void main(String[] args) {
System.out.println(tasksList);
}
while (true) {
System.out.print("Enter a command: ");
System.out.println("Enter a command: ");
String command = scanner.nextLine();
if (command.equalsIgnoreCase("bye")) { // bye exits the code
Exit exit = new Exit();
Expand Down Expand Up @@ -76,6 +80,7 @@ public static void main(String[] args) {
} else if (command.startsWith("deadline")) {
// Split the input
String descriptionDeadline = command.substring(8).trim(); // Remove "deadline" and leading spaces

if (descriptionDeadline.isEmpty()) {
try {
throw new EmptyDeadlineException();
Expand All @@ -88,18 +93,25 @@ public static void main(String[] args) {

if (separatorIndex != -1) { // Ensure the separator exists in the input
// Extract the task description and deadline

String description = descriptionDeadline.substring(0, separatorIndex).trim();
String deadline = descriptionDeadline.substring(separatorIndex + 4).trim();

// Create a new Deadline object
Deadline deadlineTask = new Deadline(description, false, deadline);
tasksList.add(deadlineTask);

System.out.println("Got it. I've added this deadline:");
System.out.println(" " + deadlineTask);
System.out.println("Now you have " + tasksList.size() + " tasks in the list.");
String pattern = "\\d{4}/\\d{2}/\\d{2}";
Pattern datePattern = Pattern.compile(pattern);
Matcher matcher = datePattern.matcher(deadline);
if (matcher.find()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDateDeadline = LocalDate.parse(deadline, formatter);
Deadline deadlineTask = new Deadline(description,false, localDateDeadline);
tasksList.add(deadlineTask);
System.out.println("Got it. I've added this deadline:");
System.out.println(" " + deadlineTask);
System.out.println("Now you have " + tasksList.size() + " tasks in the list.");
} else {
System.out.println("Please input your deadline in YYYY/MM/DD format");
}
} else {
System.out.println("Invalid input format for deadline command.");
System.out.println("Invalid input format for deadline. Please input in the following format: <deadline> <description> /by <YYYY/MM/DD> ");
}
}
} else if (command.startsWith("event")) {
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/TaskReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.time.LocalDate;

public class TaskReader {
public static ArrayList<Tasks> readTasksFromFile(String filename) {
Expand Down Expand Up @@ -32,7 +33,7 @@ private static Tasks parseTaskFromLine(String line) {
// Parse Deadline task
String description = line.substring(6, line.indexOf("(by:")).trim();
boolean isMarked = line.charAt(4) == 'X';
String deadline = extractDeadline(line);
LocalDate deadline = LocalDate.parse(extractDeadline(line));
return new Deadline(description, isMarked, deadline);
} else if (line.startsWith("[E]")) {
// Parse Event task
Expand Down

0 comments on commit 6656f9e

Please sign in to comment.