Tidsaritmetikk
Legg sammen og sammenlign tidspunkter.
Tidsaritmetikk er en gratis leksjon i Lua Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lua Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lua Academy inneholder totalt 4 leksjoner.
Tid er bare tall
Siden os.time returnerer vanlige sekunder, består datoberegninger for det meste av vanlig aritmetikk. Legg til sekunder for å flytte fremover, og trekk fra for å se bakover.
Denne leksjonen viser hvordan De forskyver tidspunkter, sammenligner dem og finner avstanden mellom to tidspunkter.
Sekunder i et minutt, en time og et døgn
Husk de grunnleggende enhetene når De arbeider med større tidsenheter: 60 sekunder i et minutt, 3600 i en time og 86400 i et døgn.
Ved å multiplisere med disse konstantene kan De uttrykke enhver varighet i sekunder.
print("Minute:", 60)
print("Hour:", 60 * 60)
print("Day:", 24 * 60 * 60)Én time senere
For å finne tidspunktet én time fra nå tar De os.time() og legger til 3600 sekunder.
Send det nye tallet til os.date for å se resultatet som lesbar 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
Legg til 86400 sekunder for å hoppe én dag frem, eller trekk det fra for å gå én dag tilbake.
Dette er en rask måte å beregne morgendagens eller gårsdagens dato på, uten å bekymre seg for overgangen mellom måneder.
local now = os.time()
print("Yesterday:", os.date("%Y-%m-%d", now - 86400))
print("Tomorrow: ", os.date("%Y-%m-%d", now + 86400))Bygge en bestemt dato
Start beregninger fra en fast dato ved å bygge den med en tabell. Her oppretter vi nyttårsdagen 2025 og legger deretter til én uke.
Den ekstra tiden går korrekt videre 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))Sammenligne to tidspunkter
Siden tidspunkter er tall, fungerer de vanlige sammenligningsoperatorene. Et større tall betyr et senere tidspunkt.
Dermed er det enkelt å kontrollere om en tidsfrist er utløpt.
local deadline = os.time({year=2020, month=1, day=1})
local now = os.time()
if now > deadline then
print("Deadline has passed")
endForskjell i sekunder
Hvis De trekker ett tidspunkt fra et annet, får De avstanden i sekunder. Lua tilbyr også os.difftime(a, b), som returnerer a - b som et tall.
Bruk av os.difftime er den portable og anbefalte måten å finne et tidsintervall på.
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))Gjør sekunder om til dager
Et tidsintervall uttrykt i sekunder kan være stort, så divider for å få mer håndterlige enheter. Divider med 86400 for dager eller med 3600 for timer.
Bruk math.floor for å fjerne brøkdelen når du bare vil ha hele enheter.
local diff = os.difftime(
os.time({year=2025, month=1, day=11}),
os.time({year=2025, month=1, day=1}))
print(diff / 86400, "days")Dager til en hendelse
Kombiner ideene for å telle ned til en fremtidig dato. Trekk tidspunktet nå fra måltidspunktet, og konverter deretter sekunder til hele dager.
Dette mønsteret brukes i nedtellingstidtaker og påminnelsesapper.
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 nyttig triks er å gi os.time en tabell med et felt utenfor det gyldige området, så korrigerer funksjonen det. Dag 32 i januar blir 1. februar.
Dermed kan du legge til dager ved ganske enkelt å øke day-feltet, så ordner Lua kalenderen.
local t = os.time({year=2025, month=1, day=32})
print(os.date("%Y-%m-%d", t))Legg til en måned på en trygg måte
På grunn av normaliseringen kan du øke month-feltet til over 12, så flytter Lua året fremover.
Måned 13 i 2025 blir automatisk januar 2026.
local t = os.time({year=2025, month=13, day=1})
print(os.date("%Y-%m-%d", t))Rask sjekk
Bruk kunnskapen din om tidsberegning.
Oppsummering
Tidsverdier er tall, så du kan legge til eller trekke fra sekunder for å forskyve dem: 3600 per time og 86400 per dag. Sammenlign tidspunkter direkte med > og <.
Bruk os.difftime for forskjellen mellom to tidspunkter, og divider deretter for å få timer eller dager. Husk også at os.time normaliserer tabellfelt utenfor gyldig område, slik at kalenderberegninger blir enkle.
Lær deg Lua med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 40
- Leksjoner
- 159
Ofte stilte spørsmål
Er leksjonen «Tidsaritmetikk» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lua Academy, inkludert «Tidsaritmetikk», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lua Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Tidsaritmetikk»?
Legg sammen og sammenlign tidspunkter. Du øver på Lua Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Lua Academy?
Ingen tidligere erfaring er nødvendig. Lua Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Tidsaritmetikk»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Lua Academy-leksjonen?
Ja. Alle Lua Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- os.time og os.date
- Formater datoer
- Tidsaritmetikk
- Mål varigheter