Answer:
import java.util.ArrayList;
import java.util.Scanner;
public class PersonalOrganizer {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> eventNames = new ArrayList<>();
ArrayList<Integer> eventYears = new ArrayList<>();
ArrayList<Integer> eventMonths = new ArrayList<>();
ArrayList<Integer> eventDays = new ArrayList<>();
boolean addMoreEvents = true;
while (addMoreEvents) {
// Ask for event name
System.out.print("Enter event name: ");
String eventName = scanner.nextLine();
eventNames.add(eventName);
// Ask for event year
int eventYear;
do {
System.out.print("Enter event year (4 digits): ");
while (!scanner.hasNextInt()) {
System.out.print("Invalid input. Enter event year (4 digits): ");
scanner.next();
}
eventYear = scanner.nextInt();
} while (eventYear < 1000 || eventYear > 9999);
scanner.nextLine(); // Consume newline character
eventYears.add(eventYear);
// Ask for event month
int eventMonth;
do {
System.out.print("Enter event month (1-12): ");
while (!scanner.hasNextInt()) {
System.out.print("Invalid input. Enter event month (1-12): ");
scanner.next();
}
eventMonth = scanner.nextInt();
} while (eventMonth < 1 || eventMonth > 12);
scanner.nextLine(); // Consume newline character
eventMonths.add(eventMonth);
// Ask for event day
int eventDay;
do {
System.out.print("Enter event day (1-31): ");
while (!scanner.hasNextInt()) {
System.out.print("Invalid input. Enter event day (1-31): ");
scanner.next();
}
eventDay = scanner.nextInt();
} while (eventDay < 1 || eventDay > 31);
scanner.nextLine(); // Consume newline character
eventDays.add(eventDay);
// Ask if the user wants to add more events
System.out.print("Do you want to add another event? (y/n): ");
String response = scanner.nextLine();
addMoreEvents = response.equalsIgnoreCase("y") || response.equalsIgnoreCase("yes");
}
// Output all events
System.out.println("\\Events:");
for (int i = 0; i < eventNames.size(); i++) {
String eventName = eventNames.get(i);
int eventYear = eventYears.get(i);
int eventMonth = eventMonths.get(i);
int eventDay = eventDays.get(i);
System.out.printf("%s: %02d/%02d/%d\\", eventName, eventMonth, eventDay, eventYear);
}
}
}
Step-by-step explanation:
This program prompts the user to enter event details, validates the input, and stores them in parallel lists. The program also allows the user to add multiple events, and outputs all events at the end.