Package systextil

Class MesAno

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

public class MesAno extends Object implements Comparable<MesAno>
Representa um mês de um ano, para facilitar alguns cálculos ou processos. O mês segue a numeração normal (1 é janeiro), e o ano segue o valor completo de 4 dígitos (por exemplo: 2010).
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final int
     
    final int
     
    static final MesAno
    Objeto que sempre retorna zero para o mês e o ano.
  • Constructor Summary

    Constructors
    Constructor
    Description
    MesAno(int mes, int ano)
    Cria um mês de um ano a partir de um mês e um ano (dã!).
  • Method Summary

    Modifier and Type
    Method
    Description
    final int
    Verifica a diferença entre este mês e outro.
    static MesAno
    Obtém o mês e o ano a partir deste instante.
    final Date
    dia(int dia)
    Retorna a data correspondente a um dia neste mês.
    final boolean
    Indica se este objeto corresponde ao mesmo mês e ano que outro objeto.
    final int
    Retorna o número que representa internamente o mês e o ano.
    final MesAno
    Retorna o próximo mês.
    static MesAno
    parse(Date data)
    Obtém o mês e o ano a partir de uma data qualquer.
    final MesAno
    Retorna o mês anterior.
    final Date
    Retorna a data correspondente ao primeiro dia deste mês.
    final MesAno
    shift(int months)
    Retorna um novo mês deslocado deste mês a quantidade de meses indicada.
     
    final Date
    Retorna a data correspondente ao último dia deste mês.

    Methods inherited from class java.lang.Object

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

    • ZEROS

      public static final MesAno ZEROS
      Objeto que sempre retorna zero para o mês e o ano.
    • mes

      public final int mes
    • ano

      public final int ano
  • Constructor Details

    • MesAno

      public MesAno(int mes, int ano)
      Cria um mês de um ano a partir de um mês e um ano (dã!). O resultado é internamente armazenado na forma de um hashCode que corresponde ao número de meses decorridos desde janeiro de 2000, por convenção. Os argumentos não são validados: ainda que sejam fornecidos um mês inválido ou um ano descabido, o resultado será sempre um mês válido de algum ano possível.
      Parameters:
      mes - o mês
      ano - o ano
  • Method Details

    • equals

      public final boolean equals(Object obj)
      Indica se este objeto corresponde ao mesmo mês e ano que outro objeto. Para isso, compara os valores internos de mes e ano.
      Overrides:
      equals in class Object
      Returns:
      se o mês e o ano são iguais
    • hashCode

      public final int hashCode()
      Retorna o número que representa internamente o mês e o ano.
      Overrides:
      hashCode in class Object
      Returns:
      o número de meses decorridos desde janeiro de 2000
    • compareTo

      public final int compareTo(MesAno o)
      Verifica a diferença entre este mês e outro.
      Specified by:
      compareTo in interface Comparable<MesAno>
      Parameters:
      o - outro mês
      Returns:
      a diferença, em meses, entre este mês e outro. Se for um número positivo, indica que este mês vem depois do outro.
    • dia

      public final Date dia(int dia)
      Retorna a data correspondente a um dia neste mês. Se for informado um dia inválido para este mês, retorna um dia válido em algum mês possível.
      Parameters:
      dia - o dia pretendido
      Returns:
      a data
    • primeiroDia

      public final Date primeiroDia()
      Retorna a data correspondente ao primeiro dia deste mês.
      Returns:
      o primeiro dia do mês
    • ultimoDia

      public final Date ultimoDia()
      Retorna a data correspondente ao último dia deste mês.
      Returns:
      o último dia do mês
    • next

      public final MesAno next()
      Retorna o próximo mês.
      Returns:
      o próximo mês
    • previous

      public final MesAno previous()
      Retorna o mês anterior.
      Returns:
      o mês anterior
    • shift

      public final MesAno shift(int months)
      Retorna um novo mês deslocado deste mês a quantidade de meses indicada. É uma conveniência para encontrar um mês tendo como referência o objeto atual.

      Para obter o primeiro e o último mês do ano atual, por exemplo, pode-se fazer assim:

       MesAno hoje = MesAno.current();
       MesAno jan = hoje.shift( 1 - hoje.mes);
       MesAno dez = hoje.shift(12 - hoje.mes);
       
      Parameters:
      months - a quantidade de meses a deslocar. Se for positiva, desloca para o futuro; se for negativa, desloca para o passado.
      Returns:
      o novo mês deslocado a quantidade de meses indicada
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • parse

      public static MesAno parse(Date data)
      Obtém o mês e o ano a partir de uma data qualquer.
      Parameters:
      data - a data
      Returns:
      o mês e o ano correspondente à data informada
    • current

      public static MesAno current()
      Obtém o mês e o ano a partir deste instante.
      Returns:
      o mês e o ano correspondente ao instante atual