fork download
  1. from datetime import datetime, timedelta
  2.  
  3. def get_interval (inicio, fim, intervalo):
  4.  
  5. """
  6. Retorna a lista de horários entre `inicio` e `fim`, inclusive, com um intervalo definido por `intervalo`.
  7.  
  8. @param inicio iterable Lista de três valores no formato (hora, minutos, segundos)
  9. @param fim iterable Lista de três valores no formato (hora, minutos, segundos)
  10. @param intervalo iterable Lista de três valores no formato (hora, minutos, segundos)
  11. @return generator
  12. """
  13.  
  14. inicio = datetime(2017, 1, 1, *inicio)
  15. fim = datetime(2017, 1, 1, *fim)
  16.  
  17. iHoras, iMinutos, iSegundos = intervalo
  18.  
  19. intervalo = timedelta(hours=iHoras, minutes=iMinutos, seconds=iSegundos)
  20.  
  21. while inicio <= fim:
  22. yield inicio.time()
  23. inicio += intervalo
  24.  
  25. hrInicial = (8, 0, 0)
  26. hrFinal = (12, 0, 0)
  27. intervalo = (0, 30, 0)
  28.  
  29. for hora in get_interval(hrInicial, hrFinal, intervalo):
  30. print(hora)
Success #stdin #stdout 0.02s 28080KB
stdin
Standard input is empty
stdout
08:00:00
08:30:00
09:00:00
09:30:00
10:00:00
10:30:00
11:00:00
11:30:00
12:00:00