]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixed date range comparison
authorMarc Englund <marc.englund@itmill.com>
Thu, 30 Aug 2007 13:27:17 +0000 (13:27 +0000)
committerMarc Englund <marc.englund@itmill.com>
Thu, 30 Aug 2007 13:27:17 +0000 (13:27 +0000)
svn changeset:2159/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/DateTimeService.java

index 10e2a3183727fa0b1d4e4a39da59c2b5a042a3a7..62ff15d0ac7284c74981efb82459da4a65d3787a 100644 (file)
@@ -201,43 +201,42 @@ public class DateTimeService {
            e = rangeEnd;\r
            s = rangeStart;\r
        }\r
-       if (date.getYear() < s.getYear() || date.getYear() > e.getYear()) {\r
-           return false;\r
-       } else if (resolution == RESOLUTION_YEAR) {\r
-           return true;\r
-       }\r
-       if (date.getMonth() < s.getMonth() || date.getMonth() > e.getMonth()) {\r
-           return false;\r
-       } else if (resolution == RESOLUTION_MONTH) {\r
-           return true;\r
-       }\r
-       if (date.getDate() < s.getDate() || date.getDate() > e.getDate()) {\r
-           return false;\r
-       } else if (resolution == RESOLUTION_DAY) {\r
-           return true;\r
-       }\r
-       if (date.getHours() < s.getHours() || date.getHours() > e.getHours()) {\r
-           return false;\r
-       } else if (resolution == RESOLUTION_HOUR) {\r
-           return true;\r
-       }\r
-       if (date.getMinutes() < s.getMinutes()\r
-               || date.getMinutes() > e.getMinutes()) {\r
-           return false;\r
-       } else if (resolution == RESOLUTION_MIN) {\r
-           return true;\r
-       }\r
-       if (date.getSeconds() < s.getSeconds()\r
-               || date.getSeconds() > e.getSeconds()) {\r
-           return false;\r
-       } else if (resolution == RESOLUTION_SEC) {\r
-           return true;\r
-       }\r
-       if (date.getTime() < s.getTime() || date.getTime() > e.getTime()) {\r
-           return false;\r
-       } else {\r
-           return true;\r
-       }\r
+       long start = s.getYear()*10000000000l;\r
+       long end = e.getYear()*10000000000l;\r
+       long target = date.getYear()*10000000000l;\r
+       \r
+       if (resolution == RESOLUTION_YEAR) {\r
+           return (start<=target&&end>=target);\r
+       }\r
+       start += s.getMonth() * 100000000;\r
+       end += e.getMonth() * 100000000;\r
+       target += date.getMonth() * 100000000;\r
+       if (resolution == RESOLUTION_MONTH) {\r
+           return (start<=target&&end>=target);\r
+       }\r
+       start += s.getDate() * 1000000;\r
+       end += e.getDate() * 1000000;\r
+       target += date.getDate() * 1000000;\r
+       if (resolution == RESOLUTION_DAY) {\r
+           return (start<=target&&end>=target);\r
+       }\r
+       start += s.getHours() * 10000;\r
+       end += e.getHours() * 10000;\r
+       target += date.getHours() * 10000;\r
+       if (resolution == RESOLUTION_HOUR) {\r
+           return (start<=target&&end>=target);\r
+       }\r
+       start += s.getMinutes() * 100;\r
+       end += e.getMinutes() * 100;\r
+       target += date.getMinutes() * 100;\r
+       if (resolution == RESOLUTION_MIN) {\r
+           return (start<=target&&end>=target);\r
+       }\r
+       start += s.getSeconds();\r
+       end += e.getSeconds();\r
+       target += date.getSeconds();\r
+       return (start<=target&&end>=target);\r
+\r
     }\r
 \r
     private static int getDayInt(Date date) {\r