Saltar para o conteúdo principal
Versão: 21 R4 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 (?....?).

A time literal constant is ordered hour:minute:second, with a colon (:) setting off each part. Times are specified in 24-hour format. As horas são especificadas no formato de 24 horas.

Aqui são exemplos de constantes de tipo hora:

?00:00:00? //midnight
?09:30:00? //9:30 am
?13:01:59? //1 pm, 1 minute, and 59 seconds

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? ?02:03:04?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