I did some checking to make sure this works. Turns out there are no "leap seconds" or anything else that interfere with this.
```
scala> val now = System.currentTimeMillis()
scala> val rolloverIntervalMillis = 3600 * 1000
scala> val targetTime = math.ceil(now.toDouble / rolloverIntervalMillis) * rolloverIntervalMillis
scala> new Date(targetTime.toLong)
res2: java.util.Date = Wed Jun 04 18:00:00 PDT 2014
```