X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=crawler%2Fkiss%2Fsrc%2Forg%2Fwamblee%2Fcrawler%2Fkiss%2Fguide%2FTime.java;h=de206f557b5739204acceaec86ed26cd61f03eec;hb=3d3d3345af94775f62b60933bd9b2ba1583f5842;hp=52695e109ec1acca802da69e4543a7a343db5fdd;hpb=94445186085ec1ec27bed5a5c07b634da957eb08;p=utils diff --git a/crawler/kiss/src/org/wamblee/crawler/kiss/guide/Time.java b/crawler/kiss/src/org/wamblee/crawler/kiss/guide/Time.java index 52695e10..de206f55 100644 --- a/crawler/kiss/src/org/wamblee/crawler/kiss/guide/Time.java +++ b/crawler/kiss/src/org/wamblee/crawler/kiss/guide/Time.java @@ -24,6 +24,16 @@ import java.text.NumberFormat; */ 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. */ @@ -87,7 +97,14 @@ public class Time implements Comparable { * @return Converted value. */ float asFloat() { - return (float) _hour + (float) _minute / (float) SECONDS_PER_MINUTE; + 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; } /* @@ -104,13 +121,15 @@ public class Time implements Comparable { } /** - * Compares based on time. - * @param aObject Time object to compare to. + * 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 RuntimeException("object not an instance of Time"); + throw new IllegalArgumentException("object not an instance of Time"); } Time time = (Time) aObject; return new Float(asFloat()).compareTo(new Float(time.asFloat()));