Class to
read in dates and determine if they are valid and produce outputs
classtoreadindatesanddetermineiftheyarevalidandproduceoutputs.java
/*
class to read in dates and determine if they are
valid and produce outputs
*/
public class newDate
{
/* sets up an array wih all the months stored in
, for retrieval within the program */
public final static String [] Month = {" "," January
"," February "," March ", " April "," May "," June "," July "," August
"," September "," October "," November "," December "};
/* sets up an array with the days for retreival
within the program */
public final static String [] Day = {" Sunday ","
Monday "," Tuesday "," Wednesday "," Thursday "," Friday "," Saturday "};
/* sets up an array with the valus of the dates.
Mostly used within the julian calendar */
public final static int [] Dates1 = {0,31,28,31,30,31,30,31,31,30,31,30,31};
public final static int [] Dates2 = {0,31,29,31,30,31,30,31,31,30,31,30,31};
/* sets up the variables to be used within the newDate
class */
public int day;
public int month;
public int year;
public int day1;
public int day2;
public int month1;
public int month2;
public int year1;
public int year2;
/* values to be used as temp storage */
public int tempday = 0; /* used in the julian calender
*/
public int tempmonth = 0; /* used in the julian
calender */
public int tempday2 = 0; /* used in the Datename
string */
public double dtemp;
public int d;
public int M;
public int D;
public int C;
public int Y; /* used in Zellars formula */
public int yeargap, yeargap1, yeargap2; /* used
in the days elasped to check for leap years */
public int tempyear = 0; /* used in the leapyear
*/
public int tempyear1;
public String tempyear2; /* used in the DateName
String */
public String Julian1;
public String JulianDate1, JulianDate2; /* used
to output the Julian date for each date */
public String wholedate; // used to produce the
complete date with the day included
public String leap1; // used to display if it's
a leap year or not
public int totallapse;
public int timelapse1;
public int timelapse2; /* used to calculate the
numbers of days between */
public String timelapse; /* used to output the
total number of days between two dates */
public String subyear;
public String days1, days2;
/* Constructors */
public newDate(){} /* defaullt constructor
*/
public newDate(int day1 , int month1 , int year1
, int day2, int month2 , int year2 )
{
setDaysElapsed(day1,month1,year1,day2,month2,year2);
}
/* Methods */
public void setDaysElapsed(int day1, int month1,
int year1, int day2 , int month2, int year2)
{
day = day1;
month = month1;
year = year1;
if (validDate(day,month, year))
{
dateName(day, month,year);
days1 = wholedate;
julianDay(day,month,year);
JulianDate1 = Julian1;
timelapse1 = tempday + year1;
}
else
{
System.out.println("An incorrect date has
been set ");
}
day = day2;
month = month2;
year = year2;
if (validDate(day,month, year))
{
dateName(day, month,year);
days2 = wholedate;
julianDay(day,month,year);
JulianDate2 = Julian1;
timelapse2 = tempday + year1;
}
else
{
System.out.println("An incorrect date has
been set ");
}
if (timelapse1<=timelapse2) // checks if the
first date is earlier than the secobd date
{
if (year1 < year2) // checks to see if
there is a gap in the years
{
yeargap = year2 - year1;// used to
identify if a leap year exists between two dates
yeargap2 = yeargap1 / 4;
yeargap1 = ((yeargap-yeargap2) * 365)+(yeargap2*366);
}
else
{
yeargap1 = 0;
}
totallapse = 0;
totallapse = (timelapse2 - timelapse1) +
yeargap1;
timelapse = ("The number of days between
the first date and the second is " + totallapse + " days");
}
else
{
timelapse = ("The first date was greater
than the second date");
}
}// ends daysElapsed
public boolean validDate ( int day, int month, int
year )
{
if (((day<0)||(day>31)||((month<1)||(month>12))))
{
return false;
}
else if (((day<0)||(day>30))||(month==4)||(month==6)||(month==9)||(month==11))
{
return false;
}
else if (((day >= 1) || (day <=29)) &&
( month == 2) && ( tempyear == 0)) // tempyear set to zero if the
year is a leap year
{
return true;
}
else if (((day >=1) || (day <=28)) &&
( month == 2) && ( tempyear == 1)) // tempyear set to one if the
year is not a leap year
{
return true;
}
else if (year<0)
{
return false;
}
else
{
return true;
}
} // ends ValidDate
public boolean leapYear (int year)
{
if (((year%4)==0)&&((year%100)!=0))
{
tempyear = 0;
return true;
}
else if ((year%400)==0)
{
tempyear = 0;
return true;
}
else
{
tempyear = 1;
return false;
}
} // ends leap year
public void julianDay(int day,int month,int year)
{
if (validDate(day, month, year))
{
if(leapYear(year))
{
leap1 = (" A leap year has been entered
");
System.out.println("The year " + year
+ " is leap year ");
}
else
{
leap1 = (" The year entered is not
a leap year ");
System.out.println("The year " + year
+ " is not a leap year ");
}
if (tempyear ==1)
{
tempmonth = 0;
for (int i=0;i<month;i++)
{
tempmonth = tempmonth
+ (Dates1[i]);
}
tempday = day + tempmonth;
Julian1 = ("Julian date is " + tempday
+ " of year " + year);
}
else
{
tempmonth = 0;
for (int i=0; i<month;i++)
{
tempmonth = tempmonth + (Dates2[i]);
}
tempday = day + tempmonth;
Julian1 = ("Julian date is " + tempday
+ " of year " + year);
}
}
else
{
System.out.println ("The date entered was
incorrect");
}
}// ends Julian
public void dateName (int day, int month,int year)
{
if (validDate(day,month,year))
{
D = day;
if (month < 3)
{
M = month +10;
Y = (year - 1)%100;
C = (year -1 )/100;
}
else
{
M = month - 2;
Y = year%100;
C = year/100;
}
int d = (700 + (( (26*M)-2)/10) + D + Y +
Y/4 + C/4 - (2*C))%7;
wholedate = ( Day[d] + day + Month[month]
+ year);
}
else
{
System.out.println("An incorrect date has
been entered");
}
} // ends dateName
/* get methods */
public String getLeapYear()
{
return leap1;
}
public String getJulianDay1()
{
return JulianDate1;
}
public String getJulianDay2()
{
return JulianDate2;
}
public String getDateName1()
{
return days1;
}
public String getDateName2()
{
return days2;
}
public String getDaysElapsed()
{
return timelapse;
}
} /* ends the class */
Related:
Do you have a Java Problem?
Ask It in The Java
Forum
Java Books
Java Certification,
Programming, JavaBean and Object Oriented Reference Books
Return to : Java
Programming Hints and Tips
All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
All product names are trademarks of their respective
companies.
The site www.erpgreat.com is not affiliated with or endorsed
by any company listed at this site.
Every effort is made to ensure the content integrity.
Information used on this site is at your own risk.
The content on this site may not be reproduced
or redistributed without the express written permission of
www.erpgreat.com or the content authors.
|