Ruby Academy · leksjon

Tidsaritmetikk

Varigheter og forskjeller

Leksjon 3 av 413 trinn

Tidsaritmetikk er en gratis leksjon i Ruby 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 Ruby Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ruby Academy inneholder totalt 4 leksjoner.

Legge sekunder til et tidspunkt

Tidsregning utføres i sekunder. Hvis et tall legges til en Time, flyttes den fremover med dette antallet sekunder.

t = Time.new(2026, 5, 30, 12, 0, 0)
later = t + 60
puts(later.min)

Trekke fra sekunder

Hvis et tall trekkes fra, flyttes en Time bakover med dette antallet sekunder.

t = Time.new(2026, 5, 30, 12, 0, 0)
earlier = t - 3600
puts(earlier.hour)

Lesbare varigheter

Uttrykk varigheter som produkter av sekunder, slik at hensikten blir tydelig: 60 sekunder, 60 * 60 en time, 24 * 60 * 60 en dag.

day = 24 * 60 * 60
t = Time.new(2026, 5, 30)
puts((t + day).day)

Forskjellen mellom to tidspunkter

Hvis én Time trekkes fra en annen, får man en Float-verdi i sekunder som angir forskjellen mellom dem.

a = Time.new(2026, 5, 30, 12, 0, 0)
b = Time.new(2026, 5, 30, 13, 30, 0)
diff = b - a
puts(diff)
puts(diff / 60)

Konvertere en varighet

Konverter en rå differanse i sekunder til timer og minutter ved hjelp av heltallsregning.

secs = 5400
puts("#{secs / 3600}h #{(secs % 3600) / 60}m")

Datoberegning i dager

I motsetning til Time legger klassen Date til i dager. Hvis et heltall legges til, flyttes datoen fremover med dette antallet dager.

require 'date'
d = Date.new(2026, 5, 30)
puts((d + 5).to_s)

Forskjellen mellom datoer

Hvis to Date-objekter trekkes fra hverandre, returneres et antall dager som en Rational-verdi. Kall to_i for å få et helt antall dager.

require 'date'
a = Date.new(2026, 1, 1)
b = Date.new(2026, 12, 31)
puts((b - a).to_i)

Forskyve måneder og år

Date-klassen har next_month, prev_month, next_year og operatorene >> / << for sikker forskyvning med måneder.

require 'date'
d = Date.new(2026, 5, 30)
puts(d.next_month.to_s)
puts((d >> 3).to_s)

Sikker håndtering av månedsslutt

Forskyvning med måneder begrenser datoen til gyldige datoer. Hvis én måned legges til 31. januar, havner resultatet på den siste gyldige dagen i februar, aldri på en ugyldig dato.

require 'date'
d = Date.new(2026, 1, 31)
puts((d >> 1).to_s)

Beregne antall dager frem til

En vanlig oppgave er å finne ut hvor mange dager det er til en fremtidig dato. Trekk dagens dato fra måldatoen.

require 'date'
target = Date.new(2026, 12, 25)
from = Date.new(2026, 5, 30)
puts("#{(target - from).to_i} days to go")

Måle medgått tid

For å måle hvor lang tid kode bruker, registrerer De Time.now før og etter kjøringen og trekker deretter verdiene fra hverandre.

start = Time.now
sum = 0
1000.times { |i| sum += i }
puts("sum=#{sum}")
puts((Time.now - start) >= 0)

Hurtigsjekk

Hva returnerer Ruby når én Time trekkes fra en annen?

Oppsummering: Tidsregning

De kan nå utføre beregninger med tid:

  • Time legger til og trekker fra i sekunder
  • Date legger til og trekker fra i dager
  • Time minus Time gir sekunder (Float)
  • Date minus Date gir dager (Rational)
  • next_month, >> og << forskyver måneder på en trygg måte
require 'date'
puts((Date.new(2026,6,1) - Date.new(2026,5,1)).to_i)
Gratis å komme i gang

Lær deg Ruby 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
29
Leksjoner
109

Ofte stilte spørsmål

Er leksjonen «Tidsaritmetikk» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Ruby 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 Ruby Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Tidsaritmetikk»?

Varigheter og forskjeller Du øver på Ruby 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 Ruby Academy?

Ingen tidligere erfaring er nødvendig. Ruby 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 Ruby Academy-leksjonen?

Ja. Alle Ruby 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

  1. Klasser for tid og dato
  2. Tolking og formatering
  3. Tidsaritmetikk
  4. Tidssoner
← Tilbake til Ruby Academy