Tidsaritmetik
Læg tider sammen, og sammenlign dem.
Tidsaritmetik er en gratis Lua Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lua Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lua Academy-kurset indeholder 4 lektioner i alt.
Tid er blot tal
Fordi os.time returnerer almindelige sekunder, består datoberegninger hovedsageligt af almindelig aritmetik. Læg sekunder til for at bevæge dig fremad, og træk fra for at se tilbage.
Denne lektion viser, hvordan du forskyder tidspunkter, sammenligner dem og finder forskellen mellem to øjeblikke.
Sekunder i et minut, en time og et døgn
Hvis du vil arbejde med større enheder, skal du huske de grundlæggende antal: 60 sekunder i et minut, 3600 i en time og 86400 i et døgn.
Ved at gange med disse konstanter kan du udtrykke enhver varighed i sekunder.
print("Minute:", 60)
print("Hour:", 60 * 60)
print("Day:", 24 * 60 * 60)En time senere
For at finde tidspunktet en time fra nu skal du tage os.time() og lægge 3600 sekunder til.
Giv det nye tal til os.date for at se resultatet som læsbar tekst.
local now = os.time()
local later = now + 3600
print(os.date("%H:%M", now))
print(os.date("%H:%M", later))I går og i morgen
Læg 86400 sekunder til for at springe en dag frem, eller træk dem fra for at gå en dag tilbage.
Det er en hurtig måde at beregne morgendagens eller gårsdagens dato på uden at bekymre dig om månedsskift.
local now = os.time()
print("Yesterday:", os.date("%Y-%m-%d", now - 86400))
print("Tomorrow: ", os.date("%Y-%m-%d", now + 86400))Opret en bestemt dato
Start en beregning fra en fast dato ved at oprette den med en tabel. Her opretter vi nytårsdag 2025 og lægger derefter en uge til.
Den tilføjede tid rykker korrekt frem til 8. januar.
local start = os.time({year=2025, month=1, day=1})
local week = start + 7 * 86400
print(os.date("%Y-%m-%d", week))Sammenlign to tidspunkter
Da tidspunkter er tal, fungerer de almindelige sammenligningsoperatorer. Et større tal betyder et senere tidspunkt.
Det gør det nemt at kontrollere, om en frist er overskredet.
local deadline = os.time({year=2020, month=1, day=1})
local now = os.time()
if now > deadline then
print("Deadline has passed")
endForskel i sekunder
Hvis du trækker ét tidspunkt fra et andet, får du forskellen i sekunder. Lua tilbyder også os.difftime(a, b), som returnerer a - b som et tal.
Det er portabelt og anbefalet at bruge os.difftime, når du vil finde et tidsrum.
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))Omregning af sekunder til dage
Et råt interval i sekunder er stort, så divider for at nå frem til mere praktiske enheder. Divider med 86400 for at få dage eller med 3600 for at få timer.
Brug math.floor til at fjerne brøkdelen, når du kun vil have hele enheder.
local diff = os.difftime(
os.time({year=2025, month=1, day=11}),
os.time({year=2025, month=1, day=1}))
print(diff / 86400, "days")Dage indtil en begivenhed
Kombinér idéerne for at tælle ned til en fremtidig dato. Træk det nuværende tidspunkt fra måltidspunktet, og omregn derefter sekunderne til hele dage.
Dette mønster bruges til nedtællingstimere og påmindelsesapps.
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)Normalisering med os.time
Et smart trick er at give os.time en tabel med et felt uden for det tilladte interval, så retter den det. Dag 32 i januar bliver til 1. februar.
Det gør det muligt at tilføje dage ved blot at øge feltet day, hvorefter Lua ordner kalenderen.
local t = os.time({year=2025, month=1, day=32})
print(os.date("%Y-%m-%d", t))Tilføj en måned sikkert
På grund af normaliseringen kan du øge feltet month til over 12, hvorefter Lua rykker året frem.
Måned 13 i 2025 bliver automatisk til januar 2026.
local t = os.time({year=2025, month=13, day=1})
print(os.date("%Y-%m-%d", t))Hurtigt tjek
Anvend din viden om tidsberegning.
Opsummering
Tidsværdier er tal, så du kan lægge sekunder til eller trække sekunder fra for at flytte dem: 3600 sekunder pr. time og 86400 pr. dag. Sammenlign tidspunkter direkte med > og <.
Brug os.difftime til forskellen mellem to tidspunkter, og divider derefter for at få timer eller dage. Husk også, at os.time normaliserer tabelværdier uden for intervallet, så kalenderberegninger bliver enkle.
Lær Lua med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 40
- Lektioner
- 159
Ofte stillede spørgsmål
Er lektionen “Tidsaritmetik” gratis?
Ja — alle 3 lektioner i læringssporet Lua Academy, inklusive “Tidsaritmetik”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lua Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Tidsaritmetik”?
Læg tider sammen, og sammenlign dem. Du øver dig i Lua Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Lua Academy?
Der kræves ingen tidligere erfaring. Lua Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Tidsaritmetik”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Lua Academy-lektion?
Ja. Alle Lua Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- os.time og os.date
- Formatér datoer
- Tidsaritmetik
- Mål varigheder