/***************************************************
 * Remember.java - gets current dates and prints out
 * list of birthdays
 *
 * @author Nick Bakewell - V1 - 1/22/07
 **************************************************/

import java.io.*;
import java.util.*;


public class IO_bakewens_Remember
{
    private static Scanner        dateScanner;
    private static PrintWriter    screen;
    

	 /***************************************
	  * creates new Calendar object, prints
	  * current date and calls processDates
	  **************************************/
    public static void main(String[] args)
    {
       GregorianCalendar        today;
       String                   name;   
		 File							  dates;    

       
       today    = new GregorianCalendar();
       screen   = new PrintWriter(System.out);
		 

       screen.printf(Locale.US, "\nToday's Date: %1$te %1$tB %1$tY\n", today);
       screen.flush();       
		
		 for(int i = 0; i < args.length; i++)
		 {
	       try
			 {
			   dates 	 = new File(args[i]);
			 	dateScanner = new Scanner(dates);
			 }
			 catch(FileNotFoundException e)
			 {
			 	System.err.println("No File");
			 }
	
	       processDates(today);
		  }
    }
    

	 /**************************************
	  * loops through the year and prints
	  * birthday dates from file
	  *
	  * @input GregorianCalender today
	  *************************************/
    private static void processDates(GregorianCalendar today)
    {
       int           day, month;              
       String        name;
       

       // Use the '\t' (tab) and '/' characters as delimiters
       dateScanner.useDelimiter("[\t/]");
          
          
       while (dateScanner.hasNext())
       {
          month = dateScanner.nextInt();
          day   = dateScanner.nextInt();
          name  = dateScanner.nextLine();

          if ((month == (today.get(Calendar.MONTH)+1)) && 
              (day   == today.get(Calendar.DAY_OF_MONTH)))
          {
             screen.printf("%s\n", name);
             screen.flush();
          }
       }
    }
    

}
