Saltar para o conteúdo principal
Versão: 20 R5 BETA

Hora

As variáveis, campos ou expressões de tipo Hora podem pertencer a um intervalo entre 00:00:00 e 596,000:00:00.

As horas são em formato de 24 horas.

Um valor de Hora pode ser tratado como um número. O número retornado de uma Hora será o número de segundos desde a maia noite (00:00:00) contidos nesse valor de hora.

Nota: No manual 4D Language Reference, os parâmetros de tempo nas descrições de comandos são indicados como Time, exceto quando indicado de outra forma.

Constantes literais de tipo hora

Uma constante hora está rodeada por sinais de interrogação (?....?).

Uma constante de tempo literal é ordenada hora:minute:segundo, com dois pontos (:) liberando cada parte. As horas são especificadas no formato de 24 horas.

Aqui são exemplos de constantes de tipo hora:

?00:00:00? //meia-noite
?09:30:00? //9:30 am
?13:01:59? //1 pm, 1 minuto e 59 segundos

Uma hora nula se escreve ?00:00:00?

Dica: O Editor de Código inclui um atalho para inserir um horário nulo. Para digitar um tempo nulo, digite o ponto de interrogação (?) e pressione Enter.

Operadores de horas

OperaçãoSintaxeRetornaExpressionValor
AdiçãoHora + HoraHora?02:03:04? + ?01:02:03??03:05:07?
SubtraçãoHora – HoraHora?02:03:04? ?02:03:04??01:01:01?
AdiçãoHora + NúmeroNumber?02:03:04? ?01:02:03?7449
SubtraçãoHora – NúmeroNumber?02:03:04? ?02:03:04?7319
MultiplicaçãoHora * NúmeroNumber?02:03:04? ?02:03:04?14768
DivisãoHora / NúmeroNumber?02:03:04? ?02:03:04?3692
Divisão inteiraHora \ NúmeroNumber?02:03:04? ?02:03:04?3692
MóduloHora % HoraHora?20:10:00? % ?04:20:00??02:50:00?
MóduloHora % NúmeroNumber?02:03:04? ?02:03:04?0
IgualHora = HoraParâmetros?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:03?False
DesigualdadeHora # HoraParâmetros?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:03?False
Maior queTime > TimeParâmetros?01:02:03? > ?01:02:03?True
?01:02:03? > ?01:02:03?False
Menor queTime < TimeParâmetros?01:02:03? < ?01:02:04?True
?01:02:03? < ?01:02:03?False
Maior ou igual aTime >= TimeParâmetros?01:02:03? >=?01:02:03?True
?01:02:03? >=?01:02:04?False
Menor que ou igual aTime <= TimeParâmetros?01:02:03? <=?01:02:03?True
?01:02:03? <=?01:02:03?False

Exemplo 1

Para obter uma expressão de tempo de uma expressão que combina uma expressão de tempo com um número, use os comandos Hora e String do tempo.

Você pode combinar expressões dos tipos hora e número utilizando as funções Time ou Current time:

	//A linha a seguir atribui a $vlSeconds o número de segundos   
//que serão decorridos entre meia-noite e uma hora a partir de agora
$vlSeconds:=Current time+3600
//A linha a seguir atribui a $vHSoon o horário que será em uma hora
$vhSoon:=Time(Current time+3600)

A segunda linha pode ser escrita de forma mais simples:

  // A linha a seguir atribui a $vHSoon a hora que será em uma hora
$vhSoon:=Hora atual+?01:00:00?

Exemplo 2

O operador Modulo pode ser usado, mais concretamente, para somar tempos que considerem o formato de 24 horas:

$t1:=?23:00? // É 23:00 horas
// Queremos adicionar 2 horas e meia
$t2:=$t1 +?02:30:00? // Com uma adição simples, $t2 é ?25:30:00?
$t2:=($t1 +? 2:30:00?)%?24:00:00? // $t2 é ?01:30:00? e é 1:30 hora na manhã seguinte