250 /**
251 * Проверяет равенство текущей даты с другим произвольным объектом.
252 *
253 * Метод возвращает true ТОЛЬКО в том случае, если объект является
254 * экземпляром базового класса {@link SerialDate} и представляет тот же
255 * день, что и {@link SpreadsheetDate}.
256 *
257 * @param object объект для сравнения (допускается
null
).
258 *
259 * @return Логический признак.
260 */
261 public boolean equals(final Object object) {
262
263 if (object instanceof SerialDate) {
264 final SerialDate s = (SerialDate) object;
265 return (s.toSerial() == this.toSerial());
266 }
267 else {
268 return false;
269 }
270
271 }
272
273 /**
274 * Возвращает хеш-код для экземпляра класса.
275 *
276 * @return хеш-код.
277 */
278 public int hashCode() {
279 return toSerial();
280 }
281
282 /**
283 * Возвращает разность (в днях) между текущей и заданной
284 * 'другой' датой.
285 *
286 * @param other дата для сравнения.
287 *
288 * @return разность (в днях) между текущий и заданной
289 * 'другой' датой.
290 */
291 public int compare(final SerialDate other) {
292 return this.serial - other.toSerial();
293 }
294
295 /**
296 * Реализует метод, необходимый для интерфейса Comparable.
297 *
298 * @param other другой объект (обычно другой объект SerialDate).
299 *
300 * @return отрицательное целое, нуль или положительное целое число,
301 * если объект меньше, равен или больше заданного объекта.
302 */
303 public int compareTo(final Object other) {
304 return compare((SerialDate) other);
305 }
306
307 /**
308 * Возвращает true, если текущий объект SerialDate представляет ту же дату,
309 * что и заданный объект SerialDate.
310 *
311 * @param other дата для сравнения.
312 *
313 * @return
true
, если текущий объект SerialDate представляет
314 * ту же дату, что и заданный объект SerialDate.
315 */
316 public boolean isOn(final SerialDate other) {
317 return (this.serial == other.toSerial());
318 }
319
320 /**
321 * Возвращает true, если текущий объект SerialDate представляет более раннюю
322 * дату по сравнению с заданным объектом SerialDate.
323 *
324 * @param other дата для сравнения.
325 *