2005/12/12

Lab 12-5-2005 (2) Overloading

package welcome;

import javax.swing.*;

public class DateSixthTry
{
private String month;
private int day;
private int year;

public void setDate(int month, int day, int year)
{
if ( dateOK(month, day, year) )
{
this.month = monthString(month);
this.day = day;
this.year = year;
}
else
{
System.out.println("Fatal Error");
System.exit(0);
}
}

public void setDate(String month, int day, int year)
{
if ( dateOK(month, day, year) )
{
this.month = month;
this.day = day;
this.year = year;
}
else
{
System.out.println("Fatal Error");
System.exit(0);
}
}

public void setDate(int year)
{
setDate(1, 1, year);
}


private boolean dateOK(int month, int day, int year)
{
return ( (month >= 1) && (month <= 12) && (day >= 1) && (day <= 31) &&
(year >= 1000) && (year <= 9999) );
}

private boolean dateOK(String month, int day, int year)
{
return ( monthOK(month) && (day >= 1) && (day <= 31) && (year >= 1000) && (year <= 9999) );
}

private boolean monthOK(String month)
{
return ( month.equals("Jan") || month.equals("Feb") ||
month.equals("Mar") || month.equals("Apr") ||
month.equals("May") || month.equals("Jun") ||
month.equals("Jul") || month.equals("Aug") ||
month.equals("Sep") || month.equals("Oct") ||
month.equals("Nov") || month.equals("Dec") );
}


public void readInput( )
{
boolean tryAgain = true;
String keyboard = JOptionPane.showInputDialog("Enter keybord");

while ( tryAgain )
{
System.out.println("Enter month, day, and year.");
System.out.println("Do not use a comma.");
String month = keyboard;
int day = Integer.parseInt(keyboard);
int year = Integer.parseInt(keyboard);
if ( dateOK(month, day, year) )
{
setDate(month, day, year);
tryAgain = false;
}
else
System.out.println("Illegal date. Reenter input.");
}
}


public void writeOutput( )
{
System.out.println(month + " " + day + ", " + year);
}

public void setMonth(int month)
{
if ( (month <= 0) || (month > 12))
{
System.out.println("Fatal Error");
System.exit(0);
}
else
this.month = monthString(month);
}

public void setDay(int day)
{
if ( (day <= 0) || (day > 31) )
{
System.out.println("Fatal Error");
System.exit(0);
}
else
this.day = day;
}

public void setYear(int year)
{
if ( (year <> 9999) )
{
System.out.println("Fatal Error");
System.exit(0);
}
else
this.year = year;
}

public boolean equals(DateSixthTry otherDate)
{
return ( (month.equalsIgnoreCase(otherDate.month))
&& (day == otherDate.day) && (year == otherDate.year) );
}

public boolean precedes(DateSixthTry otherDate)
{
return ( (year <>
(year == otherDate.year && getMonth( ) <>
(year == otherDate.year && month.equals(otherDate.month) && day <>
}

public String toString( )
{
return (month + " " + day + ", " + year);
}

public int getDay( )
{
return day;
}

public int getYear( )
{
return year;
}

public int getMonth( )
{
if (month.equalsIgnoreCase("Jan"))
return 1;
else if (month.equalsIgnoreCase("Feb"))
return 2;
else if (month.equalsIgnoreCase("Mar"))
return 3;
else if (month.equalsIgnoreCase("Apr"))
return 4;
else if (month.equalsIgnoreCase("May"))
return 5;
else if (month.equals("Jun"))
return 6;
else if (month.equalsIgnoreCase("Jul"))
return 7;
else if (month.equalsIgnoreCase("Aug"))
return 8;
else if (month.equalsIgnoreCase("Sep"))
return 9;
else if (month.equalsIgnoreCase("Oct"))
return 10;
else if (month.equalsIgnoreCase("Nov"))
return 11;
else if (month.equalsIgnoreCase("Dec"))
return 12;
else
{
System.out.println("Fatal Error");
System.exit(0);
return 0;
}
}


private String monthString(int month)
{
switch (month)
{
case 1: return "Jan";
case 2: return "Feb";
case 3: return "Mar";
case 4: return "Apr";
case 5: return "May";
case 6: return "Jun";
case 7: return "Jul";
case 8: return "Aug";
case 9: return "Sep";
case 10: return "Oct";
case 11: return "Nov";
case 12: return "Dec";
default: System.out.println("Fatal Error");
System.exit(0);
return "Error";
}
}

public void setMonth(String month)
{ int monthInt;
if (month=="Jan")
{ monthInt = 1;}
else if (month=="Feb")
{ monthInt= 2;}
else if (month=="Mar")
{ monthInt= 3;}
else if (month=="Apr")
{ monthInt= 4;}
else if (month=="May")
{monthInt= 5;}
else if(month=="Jun")
{ monthInt= 6;}
else if (month=="Jul")
{ monthInt= 7;}
else if (month=="Aug")
{ monthInt= 8;}
else if (month=="Sep")
{ monthInt= 9;}
else if (month=="Oct")
{ monthInt= 10;}
else if (month=="Nov")
{ monthInt= 11;}
else if (month=="Dec")
{ monthInt= 12;}
else
{
System.out.println("Fatal Error");
System.exit(0);
{ monthInt= 0;}
}
this.setMonth(monthInt);

}



package welcome;

public class overloadingDisplay {
public static void main(String[] args)
{
DateSixthTry date1= new DateSixthTry();
DateSixthTry date2= new DateSixthTry();
DateSixthTry date3= new DateSixthTry();

date1.setDate(1,2,2007);
date1.setMonth(3);
date2.setDate("Feb",2,2007);
date2.setMonth("Apr");
date3.setDate(2007);

System.out.println(date1);
System.out.println(date2);
System.out.println(date3);
}
}
}

0 Comments:

張貼留言

<< Home