Aller au contenu principal
Version: v20 R4 BETA

Time

Les variables, champs ou expressions de type Heure peuvent être compris entre 00:00:00 et 596 000:00:00.

Les heures sont stockées dans un format de 24 heures.

Une valeur de type Heure peut être utilisée en tant que numérique. Le nombre correspondant est le nombre de secondes que cette valeur représente à partir de minuit (00:00:00).

Note : Dans le manuel de référence du langage 4D, les paramètres de type Heure dans les descriptions des commandes sont appelés Heure, sauf spécification explicite.

Constantes littérales de type heure

Une constante heure est incluse entre deux points d’interrogation (?...?).

Avec une version française de 4D, une heure est structurée sous la forme heure:minute:seconde, deux points (:) séparant les valeurs. Les heures sont stockées dans un format de 24 heures.

Voici quelques exemples de constantes littérales de type heure :

?00:00:00? // minuit
?09:30:00? // 9:30 du matin
?13:01:59? // 13 heures, 1 minute et 59 secondes

Une heure nulle s’écrit ?00:00:00?

Astuce : L'éditeur de code propose un raccourci pour saisir une date nulle. Pour cela, tapez un point d'interrogation (?) et appuyez sur la touche Entrée.

Opérateurs sur les heures

OpérationSyntaxeRetourneExpressionValeur
AdditionHeure + HeureTime?02:03:04? + ?01:02:03??03:05:07?
SoustractionHeure – HeureTime?02:03:04? – ?01:02:03??01:01:01?
AdditionHeure + NombreNumber?02:03:04? ?01:02:03?7449
SoustractionHeure – NombreNumber?02:03:04? ?01:02:03?7319
MultiplicationHeure * NombreNumber?02:03:04? ?01:02:03?14768
DivisionHeure / NombreNumber?02:03:04? ?02:03:04?3692
Division entièreHeure \ NombreNumber?02:03:04? ?01:02:03?3692
ModuloHeure % HeureTime?20:10:00? % ?04:20:00??02:50:00?
ModuloHeure % NombreNumber?02:03:04? ?02:03:04?0
EgalitéHeure = HeureBoolean?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:04?False
InégalitéHeure # HeureBoolean?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:03?False
Supérieur àHeure > HeureBoolean?01:02:03? >=?01:02:03?True
?01:02:03? >=?01:02:03?False
Inférieur àHeure < HeureBoolean?01:02:03? ?01:02:04?True
?01:02:03? ?01:02:03?False
Supérieur ou égal àHeure >= HeureBoolean?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:03?False
Inférieur ou égal àHeure <= HeureBoolean?01:02:03? ?01:02:03?True
?01:02:03? ?01:02:03?False

Exemple 1

Vous pouvez combiner des expressions de type heure et de type numérique à l'aide des fonctions Time et Time string.

Vous pouvez combiner des expressions Time et Number à l'aide des fonctions Time ou Current time:

    // La ligne suivante assigne à la variable $vlSecondes le nombre de secondes qui, dans une heure à partir de maintenant, se seront écoulées depuis minuit
$vlSeconds:=Current time+3600
// La ligne suivante assigne à la variable $vhBientôt l'heure qu'il sera dans une heure
$vhSoon:=Time(Current time+3600)

La seconde ligne peut également être écrite de la façon suivante :

  // La ligne suivante assigne à la variable $vhBientôt l'heure qu'il sera dans une heure
$vhSoon:=Current time+?01:00:00?

Exemple 2

L'opérateur Modulo permet notamment d'ajouter des heures en tenant compte du format sur 24 heures d'une journée :

$t1:=?23:00:00? $t1:=?23:00:00? // avec une addition simple, $t2 vaut ?25:30:00?
$t2:=($t1 +?02:30:00?)%?24:00:00? // $t2 vaut ?01:30:00? // Il est 23 heures
// Nous souhaitons ajouter 2 heures et demi
$t2:=$t1 +?02:30:00?