Package systextil

Class HoraMinuto

java.lang.Object
systextil.HoraMinuto
All Implemented Interfaces:
Comparable<HoraMinuto>

public class HoraMinuto extends Object implements Comparable<HoraMinuto>
Representa a hora e o minuto de um dia, para facilitar alguns cálculos ou processos.

Alguns exemplos:

  • Quantos minutos antes da meia-noite:
    int tempo_ant = HoraMinuto.MEIA_NOITE.compareTo(HoraMinuto.parse(hora_inicio_ant))
  • Se a hora atual é anterior à hora inicial:
    if(HoraMinuto.now().before(HoraMinuto.parse(hora_atual))) ...
  • Se a hora atual está entre a hora inicial e a hora final:
    if(HoraMinuto.now().entre(HoraMinuto.parse(hora_ini), HoraMinuto.parse(hora_fim))) ...

Recomenda-se, sempre que possível, reusar instâncias de HoraMinuto, para poupar o retrabalho de "parses".

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Quantidade de minutos em um dia.
    final int
     
    static final HoraMinuto
    Instância correspondente à meia-noite, que armazena internamente a hora 24.
    final int
     
    static final HoraMinuto
    Instância contendo zeros, correspondente à zero hora.
  • Constructor Summary

    Constructors
    Constructor
    Description
    HoraMinuto(int hora, int minuto)
    Cria a hora de um dia a partir da hora e do minuto informados.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    after(HoraMinuto outraHora)
    Conveniência que informa se esta hora é posterior a outra.
    boolean
    before(HoraMinuto outraHora)
    Conveniência que informa se esta hora é anterior a outra.
    Assegura que o objeto retornado contenha um horário dentro do período básico de 24 horas.
    final int
    compareTo(HoraMinuto outraHora)
    Retorna a quantidade de minutos entre este objeto e a hora informada (este menos essa outra hora).
    int
    Informa quantos dias este objeto está fora do período básico de 24 horas.
    boolean
    entre(HoraMinuto inicio, HoraMinuto fim)
    Informa se esta hora está entre o início e o fim informados, inclusive.
    final boolean
     
    Retorna o Time correspondente a este objeto.
    final int
     
    static HoraMinuto
    now()
    Retorna um objeto correspondente à hora atual.
    static HoraMinuto
    parse(String time)
    Cria a hora de um dia a partir de um String no formato HH:MM(:SS).
    static HoraMinuto
    parse(Time time)
    Cria a hora de um dia a partir de um Time.
    somarMinutos(int minutos)
    Retorna um novo objeto com minutos somados à hora deste objeto.
    int
    Obtém a quantidade de minutos de um dia representada por este objeto.
    final String
    Imprime como HH:MM.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • DIA_INTEIRO

      public static final int DIA_INTEIRO
      Quantidade de minutos em um dia.
      See Also:
    • ZERO_HORA

      public static final HoraMinuto ZERO_HORA
      Instância contendo zeros, correspondente à zero hora.
    • MEIA_NOITE

      public static final HoraMinuto MEIA_NOITE
      Instância correspondente à meia-noite, que armazena internamente a hora 24.
    • hora

      public final int hora
    • minuto

      public final int minuto
  • Constructor Details

    • HoraMinuto

      public HoraMinuto(int hora, int minuto)
      Cria a hora de um dia a partir da hora e do minuto informados. O resultado é internamente armazenado na forma de um hashCode que corresponde ao número de minutos decorridos desde a zero hora. Os argumentos não são validados: ainda que sejam fornecidos um minuto inválido ou uma hora descabida, o resultado será sempre minutos válidos (entre 0 e 59) em uma hora que não necessariamente estará entre 0 e 23.
  • Method Details

    • parse

      public static HoraMinuto parse(Time time)
      Cria a hora de um dia a partir de um Time. Os segundos são descartados.
    • parse

      public static HoraMinuto parse(String time)
      Cria a hora de um dia a partir de um String no formato HH:MM(:SS). Se não houver o caractere separador (':'), interpreta os primeiros quatro caracteres, supondo que sejam numéricos.
      Throws:
      NullPointerException - se o argumento for nulo
      IndexOutOfBoundsException - se não contiver pelo menos 4 caracteres, sem o separador
      NumberFormatException - se não contiver dados numéricos válidos
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • compareTo

      public final int compareTo(HoraMinuto outraHora)
      Retorna a quantidade de minutos entre este objeto e a hora informada (este menos essa outra hora).
      Specified by:
      compareTo in interface Comparable<HoraMinuto>
    • before

      public boolean before(HoraMinuto outraHora)
      Conveniência que informa se esta hora é anterior a outra.
    • after

      public boolean after(HoraMinuto outraHora)
      Conveniência que informa se esta hora é posterior a outra.
    • entre

      public boolean entre(HoraMinuto inicio, HoraMinuto fim)
      Informa se esta hora está entre o início e o fim informados, inclusive. Leva em consideração corretamente se inicia num dia e termina no dia seguinte. Só funciona se as horas informadas estiverem corretamente no mesmo período de 24 horas.

      Este método tem este nome em português por usar uma lógica específica do Systêxtil, isto é, para que uma hora esteja em um intervalo ela pode ser igual a ambas as extremidades (p. ex. entre 14:00 e 21:59). Em outras situações mais gerais, a lógica incluiria a extremidade inicial e excluiria a extremidade final (p. ex. entre 14:00 e 22:00).

    • toString

      public final String toString()
      Imprime como HH:MM.
      Overrides:
      toString in class Object
    • getTime

      public Time getTime()
      Retorna o Time correspondente a este objeto. Sempre corresponde a um horário válido, descartados os segundos.
    • now

      public static HoraMinuto now()
      Retorna um objeto correspondente à hora atual.
    • somarMinutos

      public HoraMinuto somarMinutos(int minutos)
      Retorna um novo objeto com minutos somados à hora deste objeto. O novo objeto pode estar fora do mesmo período de 24 horas.
    • dias

      public int dias()
      Informa quantos dias este objeto está fora do período básico de 24 horas. Geralmente retorna 0. Pode ser positivo ou negativo, conforme esteja depois ou antes do período.
    • canonicalize

      public HoraMinuto canonicalize()
      Assegura que o objeto retornado contenha um horário dentro do período básico de 24 horas. Pode ser necessário antes de executar novos cálculos. Não é necessário antes de executar getTime(), que sempre retorna um objeto válido.
    • toMinutes

      public int toMinutes()
      Obtém a quantidade de minutos de um dia representada por este objeto. Sempre está entre zero e 1440-1.
      Returns:
      a quantidade de minutos de um dia representada por este objeto