Class UtilDateTime

java.lang.Object
br.com.intersys.systextil.util.UtilDateTime

public class UtilDateTime extends Object
Métodos utilitários para manusear datas e horas tentando manter alguma compatibilidade com as funções do Vision. É provável que em Java puro existam melhores implementações das funcionalidades de vários métodos desta classe. Aqui procurou-se priorizar a compatibilidade, mesmo que em detrimento de alguma qualidade de implementação.

Alguns métodos são muito antigos e possivelmente nem são mais usados.

  • Constructor Details

    • UtilDateTime

      public UtilDateTime()
  • Method Details

    • getDateTimeNow

      public static Calendar getDateTimeNow()
    • getSQLDateTimeNow

      public static Timestamp getSQLDateTimeNow()
    • comparaDatas

      public static boolean comparaDatas(Date data1, Date data2)
    • formataDataOracle

      public static String formataDataOracle(Date data)
    • formataDataRPT

      public static String formataDataRPT(Date data1)
    • formataHoraRPT

      public static String formataHoraRPT(Date data1)
    • getDate

      public static Date getDate(String data)
    • getDate

      public static Date getDate(int pDia, int pMes, int pAno)
    • getTime

      public static Time getTime(String hora)
    • getDate

      public static Date getDate(Date data)
      Extrai só a data a partir de um Date genérico.
    • getTime

      public static Time getTime(Date data)
      Extrai só a hora a partir de um Date genérico.
    • currentDate

      public static Date currentDate()
    • currentTime

      public static Time currentTime()
    • getUltimoDiaMes

      public static Date getUltimoDiaMes(Date pData)
      Calcula o último dia de um mês.
    • getPrimeiroDiaMes

      public static Date getPrimeiroDiaMes(Date pData)
      Calcula o primeiro dia de um mês.
    • somarMes

      public static Date somarMes(Date pData, int pqtde)
    • somarDias

      public static Date somarDias(Date pData, int pqtde)
    • somarMinutos

      public static Timestamp somarMinutos(Date date, int minutos)
    • compararDatas

      public static boolean compararDatas(Date pData1, String pOperacao, Date pData2)
    • compararDatas

      public static boolean compararDatas(Date pData1, String pOperacao, Date pData2)
    • getDia

      public static int getDia(Date pData)
    • getMes

      public static int getMes(Date pData)
    • getLocalizedDateString

      public static String getLocalizedDateString(Date date, String pattern, String locale)
    • toNum

      public static int toNum(Date pData)
    • toDate

      public static Date toDate(int pDias)
    • getAno

      public static int getAno(Date pData)
    • parseDatetoDateSQL

      public static Date parseDatetoDateSQL(Date pData)
    • parseDateSQLtoDate

      public static Date parseDateSQLtoDate(Date pData)
    • difAnos

      public static int difAnos(Date ate, Date de)
    • difMinutosEmUmDia

      public static int difMinutosEmUmDia(Date ate, Date de)
      Retorna a quantidade de minutos entre dois horários, considerando que ambos estejam consecutivamente dentro de um intervalo menor do que 24 horas (isto é, mesmo que inicie num dia e termine no dia seguinte). Este método é muito útil para substituir lógicas extensas construídas em Vision somente para este fim, por exemplo para o cálculo de turnos.
      Parameters:
      ate - o horário final
      de - o horário inicial
      Returns:
      a quantidade de minutos, que é sempre um número positivo menor do que um dia
    • difMinutos

      public static int difMinutos(Date ate, Date de)
      Retorna a quantidade de minutos entre dois instantes. Os parâmetros são final, inicial.

      É recomendado que os parâmetros possuam data e hora, e portanto sejam das classes java.util.Date ou java.sql.Timestamp. Tipos somente data ou somente hora podem não retornar um valor que faça sentido.

      Parameters:
      ate - o instante final
      de - o instante final
      Returns:
      os minutos entre os dois instantes; se estiverem invertidos, o resultado é negativo.
    • difMinutos

      public static int difMinutos(Date dataDe, Time horaDe, Date dataAte, Time horaAte)
      Implementa a função calcula_minutos. Os parâmetros são inicial, final.
    • difDatas

      public static int difDatas(Date pData1, Date pData2)
    • toMinutes

      public static int toMinutes(Time time)
      É pressuposto que a variável Time esteja limpa, isto é, venha de uma consulta ao banco de dados com o dia zerado, ou de UtilDateTime.getTime(String).
    • toMinutes

      public static int toMinutes(String time)
      Conveniência para obter os minutos de um Time representado por um String.
    • getTime

      public static Time getTime(int minutes)
      Converte uma quantidade de minutos em um Time descartando eventual componente de dia.
    • toVisionTimestamp

      public static Timestamp toVisionTimestamp(Time time)
      Converte uma hora em um Timestamp correspondente à hora que é gravada pelo Vision no banco de dados Oracle. Essa hora é sempre baseada no dia 16 de novembro de 1989.
    • getTimestamp

      public static Timestamp getTimestamp(Date date, Time time)
      Gera um Timestamp juntando um Date e um Time.
    • compararCampos

      public static int compararCampos(Date primeiro, Date segundo) throws NullPointerException
      Permite uma comparação semelhante a UtilDateTime.compararCampos(Nullable de, Nullable ate).

      Este método só é executado se os parâmetros forem de tipos diferentes de Date. Neste caso, os parâmetros se transformam em java.sql.Date antes da comparação. Se ambos forem do mesmo tipo, é executado um dos outros métodos.

      Parameters:
      primeiro - um objeto Date que pode ser Date, ou Time, ou Timestamp
      segundo - outro objeto compatível com de
      Returns:
      0 se primeiro==segundo, 1 se primeiro > segundo, -1 se primeiro < segundo
      Throws:
      NullPointerException - se algum parametro for nulo
    • compararCampos

      public static int compararCampos(Date primeiro, Date segundo) throws NullPointerException
      Throws:
      NullPointerException
    • compararCampos

      public static int compararCampos(Time primeiro, Time segundo) throws NullPointerException
      Throws:
      NullPointerException
    • compararCampos

      public static int compararCampos(Timestamp primeiro, Timestamp segundo) throws NullPointerException
      Throws:
      NullPointerException
    • compararDataHora

      public static boolean compararDataHora(Date pData1, String pOperacao, Date pData2)
    • formatarData

      public static String formatarData(Date data1)
      Formata a data informada dd/mm/yyyy.
      Parameters:
      data1 - Data informada
      Returns:
      String Retorna dd/mm/yyyy e "" para os demais casos.
    • formatarDataHora

      public static String formatarDataHora(Date data1)
    • stringTimeToDate

      public static Date stringTimeToDate(String dataStr)
    • stringToDate

      public static Date stringToDate(String dataStr)
      Sempre retorna um dia sem as horas.
    • datetimeAdjust

      public static Date datetimeAdjust(Date date, String interval, int value)
      Implementa a função datetime_adjust$() do Vision.
      Parameters:
      date - a data tomada por base; pode ser nula
      interval - o tipo de intervalo a adotar, conforme os padrões de Vision
      value - o número de unidades do intervalo a ajustar; pode ser positivo ou negativo
      Returns:
      a data calculada, ou nulo se foi informada nula
      Throws:
      IllegalArgumentException - se for informado um intervalo inválido
    • datetimeAdjust

      public static Time datetimeAdjust(Time time, String interval, int value)
      Implementa a função datetime_adjust$() do Vision.
      Parameters:
      time - a hora tomada por base; pode ser nula
      interval - o tipo de intervalo a adotar, conforme os padrões de Vision
      value - o número de unidades do intervalo a ajustar; pode ser positivo ou negativo
      Returns:
      a hora calculada, ou nulo se foi informada nula
      Throws:
      IllegalArgumentException - se for informado um intervalo inválido