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ção | Sintaxe | Retorna | Expression | Valor |
---|---|---|---|---|
Adição | Hora + Hora | Hora | ?02:03:04? + ?01:02:03? | ?03:05:07? |
Subtração | Hora – Hora | Hora | ?02:03:04? ?02:03:04? | ?01:01:01? |
Adição | Hora + Número | Number | ?02:03:04? ?01:02:03? | 7449 |
Subtração | Hora – Número | Number | ?02:03:04? ?02:03:04? | 7319 |
Multiplicação | Hora * Número | Number | ?02:03:04? ?02:03:04? | 14768 |
Divisão | Hora / Número | Number | ?02:03:04? ?02:03:04? | 3692 |
Divisão inteira | Hora \ Número | Number | ?02:03:04? ?02:03:04? | 3692 |
Módulo | Hora % Hora | Hora | ?20:10:00? % ?04:20:00? | ?02:50:00? |
Módulo | Hora % Número | Number | ?02:03:04? ?02:03:04? | 0 |
Igual | Hora = Hora | Parâmetros | ?01:02:03? ?01:02:03? | True |
?01:02:03? ?01:02:03? | False | |||
Desigualdade | Hora # Hora | Parâmetros | ?01:02:03? ?01:02:03? | True |
?01:02:03? ?01:02:03? | False | |||
Maior que | Hora > Hora | Parâmetros | ?01:02:03? >=?01:02:03? | True |
?01:02:03? >=?01:02:03? | False | |||
Menor que | Hora < Hora | Parâmetros | ?01:02:03? ?01:02:03? | True |
?01:02:03? ?01:02:03? | False | |||
Maior ou igual a | Hora >= Hora | Parâmetros | ?01:02:03? ?01:02:03? | True |
?01:02:03? ?01:02:03? | False | |||
Menor que ou igual a | Hora <= Hora | Parâ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