From cee342dfce073f061e38994ba18444d0ce383441 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Wed, 29 Aug 2018 11:56:58 +0200
Subject: [PATCH] Added a couple of new methods

---
 .../java/no/nibio/vips/util/DateUtil.java     | 38 ++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/src/main/java/no/nibio/vips/util/DateUtil.java b/src/main/java/no/nibio/vips/util/DateUtil.java
index 68479be..c3d0a08 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();
+    }
 }
-- 
GitLab