Arithmétique temporelle
Additionnez et comparez des heures.
Arithmétique temporelle est une leçon Lua Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Lua Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Lua Academy comprend 4 leçons au total.
Le time n'est que des nombres
Comme os.time renvoie un simple nombre de secondes, les calculs de date reposent principalement sur des opérations arithmétiques ordinaires. Ajoutez des secondes pour avancer et soustrayez-en pour revenir en arrière.
Cette leçon montre comment décaler des moments, les comparer et trouver l'écart entre deux instants.
Secondes dans une minute, une heure et un jour
Pour travailler avec des unités plus grandes, retenez les valeurs de base : 60 secondes dans une minute, 3600 dans une heure et 86400 dans un jour.
En multipliant par ces constantes, vous pouvez exprimer n'importe quelle durée en secondes.
print("Minute:", 60)
print("Hour:", 60 * 60)
print("Day:", 24 * 60 * 60)Une heure plus tard
Pour obtenir le time dans une heure, prenez os.time() et ajoutez 3600 secondes.
Transmettez le nouveau nombre à os.date pour voir le résultat sous forme de texte lisible.
local now = os.time()
local later = now + 3600
print(os.date("%H:%M", now))
print(os.date("%H:%M", later))Hier et demain
Ajoutez 86400 secondes pour avancer d'un jour ou soustrayez-les pour reculer d'un jour.
C'est une manière rapide de calculer la date de demain ou d'hier sans vous soucier des limites entre les mois.
local now = os.time()
print("Yesterday:", os.date("%Y-%m-%d", now - 86400))
print("Tomorrow: ", os.date("%Y-%m-%d", now + 86400))Construire une date précise
Commencez les calculs à partir d'une date fixe en la construisant avec une table. Ici, nous créons le jour de l'An 2025, puis nous ajoutons une semaine.
Le time ajouté passe correctement au 8 janvier.
local start = os.time({year=2025, month=1, day=1})
local week = start + 7 * 86400
print(os.date("%Y-%m-%d", week))Comparer deux moments
Comme les moments sont représentés par des nombres, les opérateurs de comparaison habituels fonctionnent. Un nombre plus grand représente un moment plus tardif.
Il est ainsi facile de vérifier si une échéance est dépassée.
local deadline = os.time({year=2020, month=1, day=1})
local now = os.time()
if now > deadline then
print("Deadline has passed")
endDifférence en secondes
Soustraire un moment d'un autre donne l'écart en secondes. Lua propose également os.difftime(a, b), qui renvoie a - b sous forme de nombre.
L'utilisation de os.difftime est la méthode portable et recommandée pour calculer une durée.
local a = os.time({year=2025, month=1, day=2})
local b = os.time({year=2025, month=1, day=1})
print(os.difftime(a, b))Convertir des secondes en jours
Un écart brut en secondes est élevé : divisez-le donc pour obtenir des unités plus pratiques. Divisez par 86400 pour obtenir des jours, ou par 3600 pour obtenir des heures.
Utilisez math.floor pour supprimer la partie fractionnaire lorsque vous ne voulez que des unités entières.
local diff = os.difftime(
os.time({year=2025, month=1, day=11}),
os.time({year=2025, month=1, day=1}))
print(diff / 86400, "days")Nombre de jours avant un événement
Combinez ces idées pour décompter jusqu'à une date future. Soustrayez l'instant présent de la date cible, puis convertissez les secondes en jours entiers.
Ce modèle est à la base des comptes à rebours et des applications de rappel.
local target = os.time({year=2030, month=1, day=1})
local secs = os.difftime(target, os.time())
local days = math.floor(secs / 86400)
print("Days left:", days)Normaliser avec os.time
Voici une astuce pratique : donnez à os.time une table contenant un champ hors limites, et il le corrige. Le 32 janvier devient le 1er février.
Vous pouvez ainsi ajouter des jours en augmentant simplement le champ day ; Lua s'occupe du calendrier.
local t = os.time({year=2025, month=1, day=32})
print(os.date("%Y-%m-%d", t))Ajouter un mois sans risque
Grâce à la normalisation, vous pouvez augmenter le champ month au-delà de 12, et Lua fait avancer l'année.
Le mois 13 de 2025 devient automatiquement janvier 2026.
local t = os.time({year=2025, month=13, day=1})
print(os.date("%Y-%m-%d", t))Vérification rapide
Mettez à l'épreuve vos connaissances sur les calculs temporels.
Récapitulatif
Les valeurs temporelles sont des nombres : ajoutez ou soustrayez des secondes pour les décaler, à raison de 3600 secondes par heure et de 86400 par jour. Comparez directement les instants avec > et <.
Utilisez os.difftime pour calculer l'écart entre deux instants, puis divisez-le pour obtenir des heures ou des jours. Souvenez-vous également que os.time normalise les champs de table hors limites, ce qui simplifie les calculs de calendrier.
Questions Fréquemment Posées
La leçon « Arithmétique temporelle » est-elle gratuite ?
Oui — le texte complet de « Arithmétique temporelle » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Lua Academy, passe à CoddyKit PRO. Le cours Lua Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Arithmétique temporelle » ?
Additionnez et comparez des heures. Tu pratiques Lua Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Lua Academy ?
Aucune expérience préalable n'est requise. Lua Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Arithmétique temporelle » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Lua Academy ?
Oui. Chaque leçon Lua Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- os.time et os.date
- Formater des dates
- Arithmétique temporelle
- Mesurer des durées