+++ /dev/null
-/*
- * Copyright 2005 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.wamblee.crawler.kiss.guide;
-
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-
-/**
- * TIme at which a program starts or ends.
- */
-public class Time implements Comparable {
-
- /**
- *
- */
- private static final int HOURS_PER_DAY = 24;
-
- /**
- *
- */
- private static final int EARLY_HOUR = 3;
-
- /**
- * Number of seconds per minute.
- */
- private static final double SECONDS_PER_MINUTE = 60.0;
-
- /**
- * Hour of the time.
- */
- private int _hour;
-
- /**
- * Minute of the hour.
- */
- private int _minute;
-
- /**
- * Constructs the time.
- *
- * @param aHour
- * Hour.
- * @param aMinute
- * Minute.
- */
- public Time(int aHour, int aMinute) {
- _hour = aHour;
- _minute = aMinute;
- }
-
- /**
- * Gets the hour.
- *
- * @return Hour.
- */
- public int getHour() {
- return _hour;
- }
-
- /**
- * Gets te minute.
- *
- * @return Minute.
- */
- public int getMinute() {
- return _minute;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- NumberFormat format = new DecimalFormat("00");
- return format.format(_hour) + ":" + format.format(_minute);
- }
-
- /**
- * Convert time to floating point value. Useful for comparing two times.
- *
- * @return Converted value.
- */
- float asFloat() {
- int hour = _hour;
- // Hack to make sure that programs appearing shortly after midnight are
- // sorted
- // after those running during the day.
- if (hour <= EARLY_HOUR) {
- hour += HOURS_PER_DAY;
- }
- return (float) hour + (float) _minute / (float) SECONDS_PER_MINUTE;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object aObject) {
- if (!(aObject instanceof Time)) {
- return false;
- }
- return toString().equals(aObject.toString());
- }
-
- /**
- * Compares based on time.
- *
- * @param aObject
- * Time object to compare to.
- * @return See {@link Comparable#compareTo(T)}.
- */
- public int compareTo(Object aObject) {
- if (!(aObject instanceof Time)) {
- throw new IllegalArgumentException("object not an instance of Time");
- }
- Time time = (Time) aObject;
- return new Float(asFloat()).compareTo(new Float(time.asFloat()));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return toString().hashCode();
- }
-}