Calculate age and next birthday
807601Apr 14 2008 — edited Apr 14 2008My Genius friend did this and i thought i should share........
import java.util.*;
import java.io.*;
import java.text.*;
public class Ex1804A
{
public static void main ( String []args )
{
BufferedReader in = new BufferedReader ( new InputStreamReader ( System.in ) );
SimpleDateFormat sdf = new SimpleDateFormat ("d/M/y");
Calendar birthCal = new GregorianCalendar();
Calendar current = new GregorianCalendar();
System.out.println ( "birthday calculation\nEnter 'end' to exit" );
Date birthday;
try
{
while ( true )
{
System.out.print ( "Enter birthday date:\t" );
String input = in.readLine ();
if ( input.equals ("end"))
break;
try
{
birthday = sdf.parse (input);
birthCal.setTime (birthday);//set Calendar to Calendar of birthday
int currentYear = current.get (Calendar.YEAR);
int age = currentYear - birthCal.get (Calendar.YEAR);//get age
birthCal.set ( Calendar.YEAR, currentYear );//set Year to current year
if ( current.after ( birthCal ) )//if birthday already finished,
{ age++;//add one to age
birthCal.add ( Calendar.YEAR, 1 );//add one to next birthday year
}
Date d = birthCal.getTime(); //get date of next birthday
System.out.println ("\tnext birthday :\t" + sdf.format(d));//need to format
System.out.println (" Age next birthday;\t" + age);
System.out.println ();
}
catch (ParseException e)
{
System.out.println ("Invalid date. Please enter again.");
}
}
}
catch (IOException e )
{
System.out.println ("IO Exception ");
}
}
}