Package br.com.intersys.systextil.util
Class UtilDateTime
java.lang.Object
br.com.intersys.systextil.util.UtilDateTime
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
comparaDatas
(Date data1, Date data2) static int
compararCampos
(Date primeiro, Date segundo) static int
compararCampos
(Time primeiro, Time segundo) static int
compararCampos
(Timestamp primeiro, Timestamp segundo) static int
compararCampos
(Date primeiro, Date segundo) Permite uma comparação semelhante aUtilDateTime.compararCampos(Nullable de, Nullable ate)
.static boolean
compararDataHora
(Date pData1, String pOperacao, Date pData2) static boolean
compararDatas
(Date pData1, String pOperacao, Date pData2) static boolean
compararDatas
(Date pData1, String pOperacao, Date pData2) static Date
static Time
static Date
datetimeAdjust
(Date date, String interval, int value) Implementa a funçãodatetime_adjust$()
do Vision.static Time
datetimeAdjust
(Time time, String interval, int value) Implementa a funçãodatetime_adjust$()
do Vision.static int
static int
static int
difMinutos
(Date dataDe, Time horaDe, Date dataAte, Time horaAte) Implementa a funçãocalcula_minutos
.static int
difMinutos
(Date ate, Date de) Retorna a quantidade de minutos entre dois instantes.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).static String
formataDataOracle
(Date data) static String
formataDataRPT
(Date data1) static String
formataHoraRPT
(Date data1) static String
formatarData
(Date data1) Formata a data informada dd/mm/yyyy.static String
formatarDataHora
(Date data1) static int
static Date
getDate
(int pDia, int pMes, int pAno) static Date
static Date
Extrai só a data a partir de umDate
genérico.static Calendar
static int
static String
getLocalizedDateString
(Date date, String pattern, String locale) static int
static Date
getPrimeiroDiaMes
(Date pData) Calcula o primeiro dia de um mês.static Timestamp
static Time
getTime
(int minutes) Converte uma quantidade de minutos em umTime
descartando eventual componente de dia.static Time
static Time
Extrai só a hora a partir de umDate
genérico.static Timestamp
getTimestamp
(Date date, Time time) Gera umTimestamp
juntando umDate
e umTime
.static Date
getUltimoDiaMes
(Date pData) Calcula o último dia de um mês.static Date
parseDateSQLtoDate
(Date pData) static Date
parseDatetoDateSQL
(Date pData) static Date
static Date
static Timestamp
somarMinutos
(Date date, int minutos) static Date
stringTimeToDate
(String dataStr) static Date
stringToDate
(String dataStr) Sempre retorna um dia sem as horas.static Date
toDate
(int pDias) static int
Conveniência para obter os minutos de umTime
representado por umString
.static int
É pressuposto que a variávelTime
esteja limpa, isto é, venha de uma consulta ao banco de dados com o dia zerado, ou deUtilDateTime.getTime(String)
.static int
static Timestamp
toVisionTimestamp
(Time time) Converte uma hora em umTimestamp
correspondente à hora que é gravada pelo Vision no banco de dados Oracle.
-
Constructor Details
-
UtilDateTime
public UtilDateTime()
-
-
Method Details
-
getDateTimeNow
-
getSQLDateTimeNow
-
comparaDatas
-
formataDataOracle
-
formataDataRPT
-
formataHoraRPT
-
getDate
-
getDate
-
getTime
-
getDate
Extrai só a data a partir de umDate
genérico. -
getTime
Extrai só a hora a partir de umDate
genérico. -
currentDate
-
currentTime
-
getUltimoDiaMes
Calcula o último dia de um mês. -
getPrimeiroDiaMes
Calcula o primeiro dia de um mês. -
somarMes
-
somarDias
-
somarMinutos
-
compararDatas
-
compararDatas
-
getDia
-
getMes
-
getLocalizedDateString
-
toNum
-
toDate
-
getAno
-
parseDatetoDateSQL
-
parseDateSQLtoDate
-
difAnos
-
difMinutosEmUmDia
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 finalde
- o horário inicial- Returns:
- a quantidade de minutos, que é sempre um número positivo menor do que um dia
-
difMinutos
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
oujava.sql.Timestamp
. Tipos somente data ou somente hora podem não retornar um valor que faça sentido.- Parameters:
ate
- o instante finalde
- o instante final- Returns:
- os minutos entre os dois instantes; se estiverem invertidos, o resultado é negativo.
-
difMinutos
Implementa a funçãocalcula_minutos
. Os parâmetros são inicial, final. -
difDatas
-
toMinutes
É pressuposto que a variávelTime
esteja limpa, isto é, venha de uma consulta ao banco de dados com o dia zerado, ou deUtilDateTime.getTime(String)
. -
toMinutes
Conveniência para obter os minutos de umTime
representado por umString
. -
getTime
Converte uma quantidade de minutos em umTime
descartando eventual componente de dia. -
toVisionTimestamp
Converte uma hora em umTimestamp
correspondente à hora que é gravada pelo Vision no banco de dados Oracle. Essa hora é sempre baseada no dia 16 de novembro de 1989. -
getTimestamp
Gera umTimestamp
juntando umDate
e umTime
. -
compararCampos
Permite uma comparação semelhante aUtilDateTime.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 emjava.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 Timestampsegundo
- 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
- Throws:
NullPointerException
-
compararCampos
- Throws:
NullPointerException
-
compararCampos
- Throws:
NullPointerException
-
compararDataHora
-
formatarData
Formata a data informada dd/mm/yyyy.- Parameters:
data1
- Data informada- Returns:
- String Retorna dd/mm/yyyy e "" para os demais casos.
-
formatarDataHora
-
stringTimeToDate
-
stringToDate
Sempre retorna um dia sem as horas. -
datetimeAdjust
Implementa a funçãodatetime_adjust$()
do Vision.- Parameters:
date
- a data tomada por base; pode ser nulainterval
- o tipo de intervalo a adotar, conforme os padrões de Visionvalue
- 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
Implementa a funçãodatetime_adjust$()
do Vision.- Parameters:
time
- a hora tomada por base; pode ser nulainterval
- o tipo de intervalo a adotar, conforme os padrões de Visionvalue
- 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
-