# HG changeset patch # User Ingo Weinzierl # Date 1274809588 0 # Node ID 8f836fb6f59226761825f1e92be77142d52ad337 # Parent 7f3154331bc143aa5b80b3021fdbcb24723afc11 Introduced an epsilon (750ms) to be more tolerant while comparing two data objects (issue286). gnv-artifacts/trunk@1125 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 7f3154331bc1 -r 8f836fb6f592 gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Tue May 25 15:41:31 2010 +0000 +++ b/gnv-artifacts/ChangeLog Tue May 25 17:46:28 2010 +0000 @@ -1,3 +1,11 @@ +2010-05-25 Ingo Weinzierl + + Issue286 + + * src/main/java/de/intevation/gnv/utils/InputValidator.java: Introduced an + epsilon environment to be more tolerant while comparing date objects. The + value of the current epsilon is 750ms. + 2010-05-25 Ingo Weinzierl Issue290 diff -r 7f3154331bc1 -r 8f836fb6f592 gnv-artifacts/src/main/java/de/intevation/gnv/utils/InputValidator.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/utils/InputValidator.java Tue May 25 15:41:31 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/utils/InputValidator.java Tue May 25 17:46:28 2010 +0000 @@ -28,6 +28,11 @@ */ private static Logger log = Logger.getLogger(InputValidator.class); + /** + * Epsilon for handling unprecise date objects (in ms). + */ + public final static long DATE_EPSILON = 750; + public final static String NODATASELECTEDVALUE = "n/n"; @@ -221,14 +226,11 @@ * @return true, if tmp is valid, otherwise false. */ public static boolean isDateValid(Date tmp, Date lo, Date up) { - // we need to transform the given dates into seconds, because - // they differ in milliseconds -> that's why we cannot use the - // Date.compareTo(Date) method. - long tmpTime = tmp.getTime() / 1000; - long tmpLow = lo.getTime() / 1000; - long tmpUp = up.getTime() / 1000; + long tmpTime = tmp.getTime(); + long tmpLow = lo.getTime(); + long tmpUp = up.getTime(); - if (tmpTime < tmpLow || tmpTime > tmpUp) { + if (tmpTime < tmpLow - DATE_EPSILON || tmpTime > tmpUp + DATE_EPSILON) { log.warn( "Date [" + tmp.toString() + "] is out of range [" + lo.toString() + " to "+ up.toString() + "].");