DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des dates et des heures
  • Validité des dates
  • Calcul de la différence entre deux dates avec les opérateurs
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Calcule la différence entre deux dates et heures.
Remarques :
  • Il est également possible d'utiliser l'opérateur '-' (moins) pour calculer la différence entre deux dates (voir Remarques).
  • Pour afficher le résultat de cette fonction dans une variable de type Durée, utilisez la fonction ChaîneVersDurée.
Exemple
// Temps écoulé depuis le 01/01/1998 à 12h15
Diff est une chaîne
Diff = DateHeureDifférence("199801011215", DateHeureSys())
// Affichage temps écoulé
Info("Temps écoulé : " + RC + ...
Gauche(Diff, 8) + "jours" + RC + ...
Milieu(Diff, 9, 2) + "heures" + RC + ...
Milieu(Diff, 11, 2) + "minutes" + RC + ...
Milieu(Diff, 13, 2) + "secondes" + RC + ...
Milieu(Diff, 15, 2) + "centièmes de seconde")
// Pour remplir une durée à partir du résultat de DateHeureDifférence
Diff est une chaîne = DateHeureDifférence("199801011215", DateHeureSys())
// convertir la différence dans une variable de type durée
Durée1 est une Durée = ChaîneVersDurée(Diff, duréeCentième)

// --------------------------------------------
// Autre solution possible
// DateHeure1 est une DateHeure = "199801011215"
// DateHeure2 est une DateHeure = DateHeureSys()
// Durée1 est une durée = DateHeure2 - DateHeure1
// ----------------------------------------------

// Affichage temps écoulé
Info("Temps écoulé : " + Durée1.Jour + "jours" + RC + ...
Durée1.Heure + "heures" + RC + ...
Durée1.Minute + "minutes" + RC + ...
Durée1.Seconde + "secondes" + RC + ...
Durée1.Milliseconde + "millièmes de seconde")
Syntaxe
<Résultat> = DateHeureDifférence(<Date/Heure de début> , <Date/Heure de fin>)
<Résultat> : Chaîne de caractères
Nombre de jours, heures, minutes, secondes écoulés entre deux dates au format +/-JJJJJJJHHMMSSCC où :
  • JJJJJJJ est le nombre de jours écoulés entre les deux "Date - Heure" indiquées,
  • HH est le nombre d'heures,
  • MM est le nombre de minutes,
  • SS est le nombre de secondes,
  • CC est le nombre de centièmes de seconde.
Ce résultat est issu de l'opération : <Date/Heure de fin> - <Date/Heure de début>.
Ce résultat contient le signe '-' si la <Date/Heure de début> est postérieure à la <Date/Heure de fin>.
Attention : Pour affecter ce résultat à une variable de type Durée, il est nécessaire d'utiliser la fonction ChaîneVersDurée avec la constante duréeCentième.
<Date/Heure de début> : Chaîne de caractères ou variable de type DateHeure
Date/Heure de début du calcul au format :
  • AAAAMMJJHHmmSSCC
  • AAAAMMJJHHmmSS
  • AAAAMMJJHHmm
  • AAAAMMJJHH
<Date/Heure de fin> : Chaîne de caractères ou variable de type DateHeure
Date/Heure de fin du calcul au format :
  • AAAAMMJJHHmmSSCC
  • AAAAMMJJHHmmSS
  • AAAAMMJJHHmm
  • AAAAMMJJHH
Remarques

Validité des dates

La validité des dates et des heures passées en paramètre est vérifiée. Un message est affiché en cas de date ou d'heure invalide. Une "Date - Heure" est considérée invalide si :
  • La date est invalide. La validité de la date peut être vérifiée avec la fonction DateValide.
  • L'heure est invalide. La validité de l'heure peut être vérifiée avec la fonction HeureValide.
Il n'est pas possible d'effectuer des différences de dates antérieures au 14 octobre 1582 (le passage du calendrier Julien au calendrier grégorien ne sera pas pris en compte).
Le format de stockage des dates permet de stocker des dates comprises entre le 01/01/0001 et le 31/12/9999.
Les calculs sur les dates réalisés avec les fonctions WLangage ou les propriétés WLangage sont fiables à partir du 1er Janvier 1583.

Calcul de la différence entre deux dates avec les opérateurs

La fonction DateHeureDifférence peut être remplacée par l'utilisation de l'opérateur '-'. Il est également possible d'affecter directement le résultat à une variable de type Durée, en gérant la possibilité d'une durée négative.
Exemples :
duree_intervalle est une Durée
SI date_heure_1 > date_heure_2 ALORS
duree_intervalle = date_heure_1 - date_heure_2
SINON
duree_intervalle = date_heure_2 - date_heure_1
FIN
duree_intervalle est une Durée = date_heure_1 - date_heure_2
SI duree_intervalle < 0 ALORS
duree_intervalle = - duree_intervalle
FIN
Classification Métier / UI : Code neutre
Composante : wd300std.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Différence sur les millièmes de secondes
Il serait intéressant de rajouter en date de début et de fin le format +/-JJJJJJJHHMMSSCCC qui est retourné par la dateheure du système.
François SCHAAL
24 mar. 2021

Dernière modification : 21/07/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale