import java.io.*; class CalendarChange { public static void main(String[] args) throws IOException { int d,m,y; String command; char ch; Calendar calendar; BufferedReader in = Text.open(System.in); for(;;) try { System.out.print("Enter day: "); d=Text.readInt(in); System.out.print("Enter month: "); m=Text.readInt(in); System.out.print("Enter year: "); y=Text.readInt(in); calendar = new Calendar(d,m,y); break; } catch(DateException e) { System.out.println("Invalid date "+e.getMessage()); } System.out.print("Enter + or - to add or subtract "); System.out.println("followed by d, w, m, or y (or q to quit)"); do { System.out.print("> "); command=Text.readString(in); ch=command.charAt(0); if(ch=='+') { ch=command.charAt(1); if(ch=='d') calendar.addDay(); else if(ch=='w') for(int i=0;i<7;i++) calendar.addDay(); else if(ch=='m') calendar.addMonth(); else if(ch=='y') calendar.addYear(); else if(ch!='q') System.out.println("Invalid command"); } else if(ch=='-') { ch=command.charAt(1); if(ch=='d') calendar.subDay(); else if(ch=='w') for(int i=0;i<7;i++) calendar.subDay(); else if(ch=='m') calendar.subMonth(); else if(ch=='y') calendar.subYear(); else if(ch!='q') System.out.println("Invalid command"); } else if(ch!='q') System.out.println("Invalid command"); System.out.println(calendar); } while(ch!='q'); } }