diff --git a/src/main/java/no/nibio/vips/util/DateUtil.java b/src/main/java/no/nibio/vips/util/DateUtil.java index 68479be7a2382708ef6ae84318399f4cd951cc46..c3d0a081d59bc22d34ce1717aadb788a9b9ff8dc 100644 --- a/src/main/java/no/nibio/vips/util/DateUtil.java +++ b/src/main/java/no/nibio/vips/util/DateUtil.java @@ -23,7 +23,7 @@ import java.util.Calendar; import java.util.Date; /** - * @copyright 2017 <a href="http://www.nibio.no/">NIBIO</a> + * @copyright 2018 <a href="http://www.nibio.no/">NIBIO</a> * @author Tor-Einar Skog <tor-einar.skog@nibio.no> */ public class DateUtil { @@ -59,4 +59,40 @@ public class DateUtil { retVal += toDOY; return retVal; } + + public Date getClosestFutureWholeHour(Date timeStamp) + { + Calendar cal = Calendar.getInstance(); + cal.setTime(timeStamp); + + // If we're already at whole hour, change nothing + if(cal.get(Calendar.MINUTE) == 0 && cal.get(Calendar.SECOND) == 0 && cal.get(Calendar.MILLISECOND) == 0) + { + return timeStamp; + } + + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) + 1); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + return cal.getTime(); + } + + public Date getClosestPastWholeHour(Date timeStamp) + { + Calendar cal = Calendar.getInstance(); + cal.setTime(timeStamp); + + // If we're already at whole hour, change nothing + if(cal.get(Calendar.MINUTE) == 0 && cal.get(Calendar.SECOND) == 0 && cal.get(Calendar.MILLISECOND) == 0) + { + return timeStamp; + } + + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + return cal.getTime(); + } }