code: func (c *crontime) nextValidHour(baseTime time.Time) {
  	for _, hour := range c.hour {
  		if c.calculatedTime.Day() == baseTime.Day() {
  			if !hasPassed(hour, c.calculatedTime.Hour()) {
  				c.calculatedTime = setHour(c.calculatedTime, hour)
  				return
  			}
  		} else {
  			c.calculatedTime = setHour(c.calculatedTime, hour)
  			return
  		}
  	}
  	// If no result was found try it again in the following day.
  	c.calculatedTime = c.calculatedTime.AddDate(0, 0, 1)    // <-|
  	c.calculatedTime = setHour(c.calculatedTime, c.hour[0]) //   |
  	//log.Println("Cronbee: Hour", c.calculatedTime, baseTime) // |
  	c.nextValidMonth(baseTime) // May trigger a new month --------|
  	c.nextValidDay(baseTime)
  	c.nextValidHour(baseTime)
  }
docs: // Calculates the next valid Hour based upon the previous results.