이전에 만들었던 스케줄러 프로그램을 

ArrayList를 사용하도록 수정해보았다. 

 

package chapter4;

import java.util.ArrayList;
import java.util.Scanner;

public class Scheduller {
	
	public ArrayList<Event> events = new ArrayList<>();
	private Scanner kb;
	
	public void processCommand() {
		
		kb = new Scanner(System.in);
		while(true) {
			System.out.print("$ ");
			String command = kb.next();
			if(command.equals("addevent")) {
				String type = kb.next();
				if(type.equalsIgnoreCase("oneday"))
					handleAddOneDayEvent();
				else if(type.equalsIgnoreCase("duration"))
					handleAddDurationEvent();
				else if(type.equalsIgnoreCase("deadline"))
					handleAddDeadlineEvent();
			}
			else if(command.equals("list")) {
				handleList();
				
			}
			else if(command.equals("show")) {
				handleshow();
			}
			else if(command.equals("exit")) {
				break;
			}
				
		}
		kb.close();
	}

	private void handleshow() {
		String dateString = kb.next();
		MyDate theDate = parseDateString(dateString);
		for (int i=0; i<events.size();i++) {
			if(events.get(i).isRelevent(theDate))
				System.out.println(events.get(i).toString());
		}
	}

	private void handleList() {
		for(Event ev : events)
			System.out.println("   "+events.get(i).toString());
		}
		
	}

	private void handleAddDeadlineEvent() {
	
	}

	private void handleAddDurationEvent() {
		// TODO Auto-generated method stub
		
	}

	private void handleAddOneDayEvent() {
		System.out.print("  when: ");
		String dateString = kb.next();
		System.out.print("  title: ");
		String title = kb.next();
		
		
		MyDate date = parseDateString(dateString);
		OnedayEvent ev = new OnedayEvent(title,date);
		System.out.println(ev.toString());
		addEvent(ev);
	}

	private void addEvent(Event ev) {
		events.add(ev);
	}

	private MyDate parseDateString(String dateString) {
		String[] tokens = dateString.split("/");
		
		int year = Integer.parseInt(tokens[0]);
		int month = Integer.parseInt(tokens[1]);
		int day = Integer.parseInt(tokens[2]);
		
		MyDate d = new MyDate(year,month,day);
		return d;
	}

	public static void main(String[] args) {
		
		Scheduller app = new Scheduller();
		app.processCommand();
		
	}

}

+ Recent posts