Date
class and a DateFormatException
class. The Date
class keeps the date in three private int member variables, called month, day, year. It has the following methods:Date(int month, int day, int year)
: is the constructortoString()
: returns the date in a String of the form 2/2/2002public static Date parseDate(String d) throws DateFormatException
: tries to parse the string d into a viable date. If it succeeds then it creates a new date and returns it. If it fails then it throws the DateFormatException. d is a viable date if it is in the form "m/d/y" where m is an integer between 1 and 12, d is an integer between 1 and 31, and y is an integer.
For example, if you were to run this main:
public static void main(String[] args){ Date d = null; Scanner keyboard = new Scanner(System.in); boolean goodDate = false; do { System.out.print("Enter a date:"); String w = keyboard.next(); try{ d = Date.parseDate(w); goodDate = true; } catch (DateFormatException e){ System.out.println("Bad user! " + w + " is not a date I understand."); } } while (! goodDate); System.out.println("Finally! You entered a well-formatted date: " + d); }
it could result in the following interaction:
Enter a date:chanchan Bad user! chanchan is not a date I understand. Enter a date:44/44/44 Bad user! 44/44/44 is not a date I understand. Enter a date:1/44/2012 Bad user! 1/44/2012 is not a date I understand. Enter a date:44/24/2012 Bad user! 44/24/2012 is not a date I understand. Enter a date:3-3-2012 Bad user! 3-3-2012 is not a date I understand. Enter a date:3/19/2012 Finally! You entered a well-formatted date: 3/19/2012
TIP: Checkout Integer.parseInt() and String.split(), they are your secret weapon.
HACKER FYI: parseDate is a static method that creates new instances of the class. We call methods like this factories.
No comments:
Post a Comment