Aritmetica del tempo
Sommi e confronti gli orari.
Aritmetica del tempo è una lezione Lua Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Lua Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Lua Academy include 4 lezioni in totale.
Il tempo è fatto solo di numeri
Poiché os.time restituisce semplici secondi, eseguire calcoli sulle date consiste soprattutto nel fare normali operazioni aritmetiche. Aggiunga secondi per andare avanti, li sottragga per tornare indietro.
Questa lezione mostra come spostare gli orari, confrontarli e trovare l'intervallo tra due momenti.
Secondi in un minuto, un'ora e un giorno
Per lavorare con unità più grandi, ricordi i conteggi fondamentali: 60 secondi in un minuto, 3600 in un'ora e 86400 in un giorno.
Moltiplicando per queste costanti, può esprimere qualsiasi durata in secondi.
print("Minute:", 60)
print("Hour:", 60 * 60)
print("Day:", 24 * 60 * 60)Un'ora dopo
Per ottenere l'ora tra un'ora, prenda os.time() e aggiunga 3600 secondi.
Passi il nuovo numero a os.date per visualizzare il risultato come testo leggibile.
local now = os.time()
local later = now + 3600
print(os.date("%H:%M", now))
print(os.date("%H:%M", later))Ieri e domani
Aggiunga 86400 secondi per spostarsi avanti di un giorno, oppure li sottragga per tornare indietro di un giorno.
È un modo rapido per calcolare la data di domani o di ieri senza preoccuparsi dei passaggi tra i mesi.
local now = os.time()
print("Yesterday:", os.date("%Y-%m-%d", now - 86400))
print("Tomorrow: ", os.date("%Y-%m-%d", now + 86400))Creare una data specifica
Inizi i calcoli da una data fissa costruendola con una tabella. Qui creiamo Capodanno 2025 e poi aggiungiamo una settimana.
Il tempo aggiunto passa correttamente all'8 gennaio.
local start = os.time({year=2025, month=1, day=1})
local week = start + 7 * 86400
print(os.date("%Y-%m-%d", week))Confrontare due momenti
Poiché i momenti sono rappresentati da numeri, funzionano i normali operatori di confronto. Un numero più grande indica un momento successivo.
Questo rende semplice verificare se una scadenza è già passata.
local deadline = os.time({year=2020, month=1, day=1})
local now = os.time()
if now > deadline then
print("Deadline has passed")
endDifferenza in secondi
Sottraendo un momento da un altro si ottiene l'intervallo in secondi. Lua offre anche os.difftime(a, b), che restituisce a - b come numero.
Utilizzare os.difftime è il modo portabile e consigliato per calcolare un intervallo.
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))Conversione dei secondi in giorni
Un intervallo espresso in secondi può essere molto grande, quindi lo si divide per ottenere unità più pratiche. Divida per 86400 per ottenere i giorni oppure per 3600 per ottenere le ore.
Utilizzi math.floor per eliminare la parte frazionaria quando desidera soltanto unità intere.
local diff = os.difftime(
os.time({year=2025, month=1, day=11}),
os.time({year=2025, month=1, day=1}))
print(diff / 86400, "days")Giorni mancanti a un evento
Combini questi concetti per calcolare il conto alla rovescia fino a una data futura. Sottragga l'istante attuale da quello dell'evento, quindi converta i secondi in giorni interi.
Questo schema è alla base dei timer per il conto alla rovescia e delle app per i promemoria.
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)Normalizzazione con os.time
Un trucco interessante: fornisca a os.time una tabella con un campo fuori intervallo e Lua lo correggerà. Il giorno 32 di gennaio diventa il 1° febbraio.
In questo modo può aggiungere giorni semplicemente incrementando il campo day, lasciando a Lua il compito di gestire il calendario.
local t = os.time({year=2025, month=1, day=32})
print(os.date("%Y-%m-%d", t))Aggiungere un mese in sicurezza
Grazie alla normalizzazione, può incrementare il campo month oltre 12 e Lua farà avanzare automaticamente l'anno.
Il mese 13 del 2025 diventa automaticamente gennaio 2026.
local t = os.time({year=2025, month=13, day=1})
print(os.date("%Y-%m-%d", t))Verifica rapida
Applichi le conoscenze acquisite sui calcoli con il tempo.
Riepilogo
I valori temporali sono numeri, quindi può aggiungere o sottrarre secondi per spostarli: 3600 per ogni ora, 86400 per ogni giorno. Confronti direttamente gli orari con > e <.
Utilizzi os.difftime per calcolare l'intervallo tra due istanti, quindi divida il risultato per ottenere ore o giorni. Ricordi inoltre che os.time normalizza i campi della tabella fuori intervallo, semplificando i calcoli con le date.
Domande Frequenti
La lezione «Aritmetica del tempo» è gratuita?
Sì — il testo completo di «Aritmetica del tempo» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Lua Academy, passa a CoddyKit PRO. Il corso Lua Academy include 4 lezioni in totale.
Cosa imparerò in «Aritmetica del tempo»?
Sommi e confronti gli orari. Eserciti Lua Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Lua Academy?
Non è richiesta alcuna esperienza precedente. Lua Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Aritmetica del tempo»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Lua Academy?
Sì. Ogni lezione Lua Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- os.time e os.date
- Formattazione delle date
- Aritmetica del tempo
- Misurare le durate