Passando por aqui hoje pra deixar uma dica de programção com Groovy rápida e rasteira:
Problema:
- Como descubro se um horário está contido numa faixa de horários?
Por exemplo, quero saber se o horário 16:32 está contido no período das 16:00 até as 22:00, que nesse exemplo teríamos true como retorno. Beleza?
Segue o código abaixo pra resolver esse problema:
Groovy Code
/**
* @param time String in format '16:32'
* @param range String in format '18:00 22:00'
*/
boolean isTimeWithinRange(String time, String range) {
def rangeSplitted = range.split(' ')
def target = Date.parse('HH:mm', "${time}")
// criamos uma data para o horário inicial e final do período
def rangeInit = Date.parse('HH:mm', rangeSplitted[0])
def rangeEnd = Date.parse('HH:mm', rangeSplitted[1])
// criamos um range
def slot = rangeInit..rangeEnd
slot.containsWithinBounds(target)
}
println isTimeWithinRange('17:59', '18:00 22:00') // false
println isTimeWithinRange('19:59', '18:00 22:00') // true
Abraços