Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Modify the Date class so that it includes a compareTo method with signature: int compareTo(Date anotherDate) This method should return the value 0 if this

Modify the Date class so that it includes a compareTo method with signature: int compareTo(Date anotherDate) This method should return the value 0 if this date (the date of the object upon which the method is invocked) is equal to the argument date; a value less than 0 if this date is earlier than the argument date; and a value greater than 0 if this date is a date later than the argument date. Create a test driver that shows your method performs correctly.

//---------------------------------------------------------------------- // Date.java by Dale/Joyce/Weems Chapter 1 // // Defines date objects having year, month, and day attributes. //----------------------------------------------------------------------

package ch01.dates;

public class Date { protected int year, month, day; public static final int MINYEAR = 1583;

// Constructor public Date(int newMonth, int newDay, int newYear) { month = newMonth; day = newDay; year = newYear; }

// Observers public int getYear() { return year; } public int getMonth(){ return month; } public int getDay() { return day; } public int lilian() { // Returns the Lilian Day Number of this date. // Precondition: This Date is a valid date after 10/14/1582. // // Computes the number of days between 1/1/0 and this date as if no calendar // reforms took place, then subtracts 578,100 so that October 15, 1582 is day 1. final int subDays = 578100; // number of calculated days from 1/1/0 to 10/14/1582

int numDays = 0;

// Add days in years. numDays = year * 365;

// Add days in the months. if (month <= 2) numDays = numDays + (month - 1) * 31; else numDays = numDays + ((month - 1) * 31) - ((4 * (month-1) + 27) / 10);

// Add days in the days. numDays = numDays + day;

// Take care of leap years. numDays = numDays + (year / 4) - (year / 100) + (year / 400);

// Handle special case of leap year but not yet leap day. if (month < 3) { if ((year % 4) == 0) numDays = numDays - 1; if ((year % 100) == 0) numDays = numDays + 1; if ((year % 400) == 0) numDays = numDays - 1; }

// Subtract extra days up to 10/14/1582. numDays = numDays - subDays; return numDays; } @Override public String toString() // Returns this date as a String. { return(month + "/" + day + "/" + year); } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Pro SQL Server Administration

Authors: Peter Carter

1st Edition

1484207106, 9781484207109

More Books

Students also viewed these Databases questions

Question

Question What integration level should an employer choose?

Answered: 1 week ago