(no commit message)
[utils] / crawler / kiss / src / org / wamblee / crawler / kiss / guide / Time.java
index 52695e109ec1acca802da69e4543a7a343db5fdd..2d05bac10928569be7063501337c2ff354af5c22 100644 (file)
@@ -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,13 @@ 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;
     }
 
     /*
@@ -110,7 +126,7 @@ public class Time implements Comparable {
      */
     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()));