Maîtriser le calcul de la date et de l’heure

June 22, 2022

Les formulaires s’appuient beaucoup sur l’élément Sélecteur de Date – que vous soyez:

  • Evaluer les délais d’exécution des projets
  • Traiter les inscriptions
  • Gérer les réservations

Il y aura toujours un moment où vous devrez calculer la différence entre deux dates. Lorsque la situation l’exige, vous pouvez être amené à calculer la différence jusqu’à la dernière minute.

Cet article vous guidera dans cette démarche. Gardez à l’esprit que ce guide n’a pas pour but de vous aider à construire le formulaire complet, mais seulement de vous donner une idée de la manière d’effectuer des calculs avec deux champs de date.

Tout d’abord, nous devons parler du Temps d’époque (Epoch Time) – qu’est-ce que c’est?

L’époque Unix (ou temps Unix ou temps POSIX ou timestamp Unix) est le nombre de secondes qui se sont écoulées depuis le 1er janvier 1970 (minuit UTC/GMT), sans compter les secondes intercalaires (en ISO 8601 : 1970-01-01T00:00:00Z). Littéralement parlant, l’époque est le temps Unix 0 (minuit 1/1/1970), mais “époque” est souvent utilisé comme synonyme de “temps Unix”.

Epoch Converter – What is epoch time?

Epoch Converter – Qu’est-ce que le temps d’époque?
Il est important que vous soyez à l’aise avec le widget Calculatrice pour formulaire. Si ce n’est pas le cas, nous vous recommandons vivement de vous familiariser avec cette fonctionnalité en lisant ce guide. Voici un tableau montrant la décomposition complète de chaque unité de temps lisible par l’homme en secondes que nous utiliserons dans nos calculs:

Temps lisible par l’hommeSecondes
1 minute60 secondes
1 heure3600 secondes
1 jour86400 secondes
1 mois (30.44 jours)2629743 secondes
1 an (365.24 jours)31556926 secondes

Notez les unités de conversion ci-dessus, car elles seront utilisées dans nos calculs par la suite. Voici également quelques points clés sur la façon dont les widgets calculatrice pour formulaires seront utilisés, pourquoi certaines formules sont nécessaires, etc:

La différence doit être au format de temps d’époque.

Pourquoi? Parce que lors de la soustraction de deux dates à l’aide du widget calculatrice pour formulaire, la différence par défaut est dans l’unité des jours. Pour convertir un jour en temps d’époque (secondes), nous allons multiplier la différence absolue par 86400:

abs(Date1 - Date2) * 86400

Les restes sont importants

Vos calculs tourneront principalement autour de divisions et les restes sont essentiels pour obtenir le nombre excédentaire ou restant de mois, jours, heures et minutes. À l’aide de votre clavier, vous pouvez taper le symbole du pourcentage “%” dans le champ de calcul pour utiliser l’opérateur modulo. L’opération modulo renvoie le reste d’une division.

Par exemple, l’expression 7 % 3 serait évaluée à 1, car 7 divisé par 3 a un quotient de 2 et un reste de 1.

Pour mettre cela en perspective, prenez 12345 comme Temps d’époque. Cela équivaut à 3 heures, 25 minutes et 45 secondes.

Pour obtenir le résultat en minutes, utilisez la formule: floor((EpochTime % 3600) / 60)

Donnée: EpochTime = 12345
= floor((12345 % 3600) / 60)
= floor(1545 / 60)
= floor(25.75)
= 25

Nous avons utilisé la fonction floor() pour obtenir le nombre entier du quotient. Par exemple:

Pour obtenir le résultat en heures, utilisez la formule: floor(EpochTime / 3600)

Donnée: EpochTime = 12345
= floor(12345 / 3600)
= floor(3.4291666667)
= 3

Cachez les champs que vous ne voulez pas voir apparaître sur votre formulaire

Normalement, vous n’auriez pas besoin d’afficher tous les widgets de calcul (par exemple, la différence de temps de l’époque, le caractère de remplacement du reste, et ainsi de suite).


Voici le formulaire de démonstration qui sera utilisé dans ce guide, alors commençons.

1. Ajoutez tous les champs nécessaires

  • 2 éléments du sélecteur de date
  • Widgets Calculatrice pour formulaire

Pour les besoins de ce guide, nous utiliserons un widget de calcul de formulaire dédié pour la différence d’époque (en secondes) ou Temps d’époque. Le reste est à votre discrétion et dépendra fortement de vos besoins.

Par exemple, si vous avez seulement besoin d’obtenir la différence en heures et minutes, vous n’avez besoin que de 3 widgets Calculatrice pour formulaires:

  • Temps d’Epoque
  • Heures
  • Minutes

Un autre exemple est si vous avez besoin d’obtenir la différence en années, mois, jours, heures et minutes comme le formulaire de démonstration ci-dessus, vous aurez besoin de 6 widgets calculatrice pour formulaire:

  • Temps d’époque
  • Années
  • Mois
  • Jours
  • Heures
  • Minutes

2. Configurer les éléments du sélecteur de date

  1. Ouvrez le panneau des propriétés du sélecteur de date.
  2. Allez dans l’onglet Heure.
  3. Activez l’option Champ heure.
  4. Définissez le format de l’heure sur “24 Heures”.

3. Définissez les widgets de calcul du formulaire en lecture seule.

Cette option est facultative mais il est préférable de l’activer pour éviter que les utilisateurs ne modifient par erreur sa valeur pendant qu’ils remplissent le formulaire.

  1. Ouvrez le panneau des paramètres du widget calculatrice pour formulaire.
  2. Cliquez sur l’icône points de suspension.
  3. Allez dans l’onglet Options.
  4. Activez l’option Le champ de résultat est en lecture seule.
  5. Cliquez sur Retour.
  6. Enfin, cliquez sur le bouton Enregistrer pour sauvegarder les modifications.

4. La partie amusante – Ajouter la formule

Toutes les unités de temps seront couvertes ici, alors choisissez simplement la formule dont vous avez besoin pour votre formulaire.

Nous allons utiliser les dates suivantes à titre d’exemple:

  • Date1 = 01 janvier 2020 à 01:00
  • Date2 = 10 février 2030 à 02:30

La différence réelle entre ces deux dates est de 10 ans, 1 mois, 10 jours, 1 heure et 30 minutes.

Formule de la différence de Temps d’époque

abs(Date1 - Date2) * 86400

Multipliez la différence absolue entre les deux dates par 86400 pour obtenir le Temps d’époque en secondes – en utilisant les exemples de dates ci-dessus, c’est 319080600.

Formule des années

floor(EpochTime / 31556926)

Cette formule est très simple, il suffit de diviser l’heure d’EpochTime par 31556926 et d’arrondir le quotient au chiffre inférieur.

= floor(319080600 / 31556926)
= floor(10.11127)
= 10

Formule des mois

floor((EpochTime % 31556926) / 2629743)

Obtenez le reste pour les années avec “EpochTime % 31556926“, divisez le résultat par 2629743, puis arrondissez le quotient au chiffre inférieur pour obtenir le nombre de mois.

= floor((319080600 % 31556926) / 2629743)
= floor(3511340 / 2629743)
= floor(1.33524)
= 1

Formule des jours

floor(((EpochTime % 31556926) % 2629743) / 86400)

Obtenez le reste des années avec “EpochTime % 31556926″, puis obtenez le reste des mois à partir du résultat avec “{reste des années} % 2629743”, divisez le reste des mois par 86400, et enfin, arrondissez le quotient au chiffre inférieur pour obtenir le nombre de jours.

= floor(((319080600 % 31556926) % 2629743) / 86400)
= floor((3511340 % 2629743) / 86400)
= floor(881597 / 86400)
= floor(10.20367)
= 10

Formule des heures

floor((EpochTime % 86400) / 3600)

Obtenez le reste des heures avec “EpochTime % 86400″, divisez le résultat par 3600, puis arrondissez le quotient au chiffre inférieur pour obtenir le nombre d’heures.

= floor((319080600 % 86400) / 3600)
= floor(5400 / 3600)
= floor(1.5)
= 1

Formule des minutes

floor(((EpochTime % 86400) % 3600) / 60)

Cette fois, vous pouvez également utiliser round() au lieu de floor(). Les unités de temps les plus élevées nécessitent l’utilisation de floor() pour laisser la place aux unités de temps plus petites restantes (le reste). Et comme les minutes sont les plus petites, il suffit de les arrondir.

= floor(((319080600 % 86400) % 3600) / 60)
= floor((5400 % 3600) / 60)
= floor(1800 / 60)
= floor(30)
= 30

Les 5 formules suivantes sont facultatives, au cas où le besoin s’en ferait sentir. Voici la décomposition complète et autonome de toutes les unités de temps.

Années:

floor(EpochTime / 31556926)

Mois:

floor(EpochTime / 2629743)

Jours:

floor(EpochTime / 86400)

Heures:

floor(EpochTime / 3600)

Minutes:

floor(EpochTime / 60)

Oui, cela peut sembler déroutant au début, mais une fois que vous aurez compris, en particulier la partie concernant l’obtention du reste et l’unité de conversion à utiliser, tout deviendra clair.

Clonez le formulaire de démonstration pour mieux comprendre le fonctionnement des calculs ci-dessus.

Guides associés:

Les commentaires et suggestions sont les bienvenus ci-dessous. Si vous avez une question, posez-la dans notre forum d’assistance afin que nous puissions vous aider.

Ce guide vous a-t-il aidé ?
Contacter l'assistance :

Notre équipe d'assistance clientèle est disponible 24 heures sur 24 et 7 jours sur 7 et notre temps de réponse moyen est d'une à deux heures.
Notre équipe peut être contactée via :

Forum d'assistance : https://www.jotform.com/answers/

Contacter l'assistance Jotform : https://www.jotform.com/contact/

Envoyer un commentaire:

Jotform Avatar
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Commentaire:

Podo CommentSoyez le premier à commenter.