Saltar para o conteúdo principal
Versão: v18

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.

Note: In the 4D Language Reference manual, Time parameters in command descriptions are denoted as Time, except when marked otherwise.

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? ` 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?

Tip: The Method Editor includes a shortcut for entering a null time. Para escrever uma hora nula, introduza o sinal de interrogação (?) e aperte 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 queHora > HoraParâmetros?01:02:03? >=?01:02:03?True
?01:02:03? >=?01:02:03?False
Menor queHora < HoraParâmetros?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:03?False
Maior ou igual aHora >= HoraParâmetros?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:03?False
Menor que ou igual aHora <= HoraParâmetros?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:03?False

Exemplo 1

Para obter uma expressão de tipo hora a partir de uma expressão que combina uma expressão de hora com um número, utilize os comandos Time e Time string.

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

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

A segunda linha pode ser escrita de forma mais simples:

  //A linha abaixo atribui a $vHSoon a hora que será em uma hora
$vhSoon:=Current time+?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:00? // São 23:00 p.m.
// Queremos adicionar 2 horas e meia
$t2:=$t1 +?02:30:00? // Com uma simples adição, $t2 é?25:30:00?
$t2:=($t1 +?02:30:00?)%?24:00:00? // $t2 é ?01:30:00? e é 1:30 da manhã. na manhã seguinte