Boa noite galera,
estou com um probleminha aqui em relação a hora…
Eu tenho na minha JSP um radio com um horário… exemplo:
<input type="radio" name="datahorario" value="${data} 09:00:00"/>
<input type="radio" name="datahorario" value="${data} 09:30:00"/>
<input type="radio" name="datahorario" value="${data} 10:00:00"/>
<input type="radio" name="datahorario" value="${data} 10:30:00"/>
Eu tenho também um select com Duração:
Duracao:
<select name="duracao">
<option value="00:30:00">00:30h</option>
<option value="01:00:00">01:00h</option>
<option value="01:30:00">01:30h</option>
<option value="02:00:00">02:00h</option>
</select>
Se eu selecionar a duração de 01:30h como posso fazer a divisão do horário… O agendamento é feito de 30 em 30 minutos…
Exemplo:
09:00(horário) + 01:30(duracao) = 10:30(total)
O sistema tem que gravar 3 agendamentos… o de 09:00, 09:30, 10:00
Entenderam ?
Muito obrigado,
Aguardo resposta.
Se os seus dados estiverem em String ainda, transforme-os em Calendar.
Transforme tanto o horario quanto a duração em Calendar. Vai ajudar a fazer os cálculos.
Com o Calendar você consegue acessar individualmente as partes (horas, minutos, segundos) e utilizar essas partes no cálculo.
Você pode por exemplo, pegar o tempo da duração em minutos (hora * 60 + minutos) e então somar ao horario.
Pseudo-código:
Calendar horario = toCalendar(form.horario);
Calendar duracao = toCalendar(form.duracao);
int minutos = duracao.get(HOUR) * 60 + duracao.get(MINUTE);
Calendar proximoHorario = Calendar.getInstance();
proximoHorario.setTime(horario.getTime());
proximoHorario.add(MINUTE, minutos);
Usei o request.getParameter…
normal…
Atualizei meu post com um pseudo código…
No próprio GUJ tem vários posts sobre como transformar String em Calendar…
Consegui visualizar e achei sua ideia boa… porém acredito que talvez não resolva meu problema =/
estou analisando…
muito obrigado.
Como você precisará de 3 agendamentos… faça um loop para criar vários calendar em sequencia e ir adicionando os minutos…
Exemplo:
Calendar horario = toCalendar(form.horario);
Calendar duracao = toCalendar(form.duracao);
int minutos = duracao.get(HOUR) * 60 + duracao.get(MINUTE);
Calendar proximoHorario = copy(horario);
List<Calendar> todosHorarios = new ArrayList<Calendar>();
for(0..2){
Calendar novoAgendamento = copy(proximoHorario);
todosHorarios.add(novoAgendamento);
proximoHorario.add(MINUTE, minutos);
}