Tidaritmetik
Varaktigheter och skillnader.
Tidaritmetik är en gratis lektion i Ruby Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Ruby Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Ruby Academy innehåller totalt 4 lektioner.
Lägga till sekunder i en Time
Time-aritmetik fungerar i sekunder. Om Du adderar ett tal till ett Time-värde flyttas det framåt med så många sekunder.
t = Time.new(2026, 5, 30, 12, 0, 0)
later = t + 60
puts(later.min)Subtrahera sekunder
Om Du subtraherar ett tal flyttas ett Time-värde bakåt med så många sekunder.
t = Time.new(2026, 5, 30, 12, 0, 0)
earlier = t - 3600
puts(earlier.hour)Lättlästa varaktigheter
Uttryck varaktigheter som produkter av sekunder så att avsikten blir tydlig: 60 sekunder, 60 * 60 en timme och 24 * 60 * 60 en dag.
day = 24 * 60 * 60
t = Time.new(2026, 5, 30)
puts((t + day).day)Skillnaden mellan två tider
Om Du subtraherar en Time från en annan får Du ett Float-värde i sekunder mellan 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)Konvertera en varaktighet
Omvandla en rå skillnad i sekunder till timmar och minuter med heltalsaritmetik.
secs = 5400
puts("#{secs / 3600}h #{(secs % 3600) / 60}m")Datumaritmetik i dagar
Till skillnad från Time adderar Date-klassen i dagar. Om Du adderar ett heltal flyttas datumet framåt med så många dagar.
require 'date'
d = Date.new(2026, 5, 30)
puts((d + 5).to_s)Skillnaden mellan två datum
Om Du subtraherar två Date-värden returneras ett Rational-tal som anger antalet dagar. Anropa to_i för att få ett helt antal dagar.
require 'date'
a = Date.new(2026, 1, 1)
b = Date.new(2026, 12, 31)
puts((b - a).to_i)Förskjuta månader och år
Date-klassen har next_month, prev_month, next_year och operatorerna >> / << för att säkert förskjuta datum med hela månader.
require 'date'
d = Date.new(2026, 5, 30)
puts(d.next_month.to_s)
puts((d >> 3).to_s)Säkra månadsslut
Förskjutning av månader begränsas till giltiga datum. Om Du lägger till en månad till den 31 januari hamnar resultatet på den sista giltiga dagen i februari, aldrig på ett ogiltigt datum.
require 'date'
d = Date.new(2026, 1, 31)
puts((d >> 1).to_s)Räkna dagar fram till ett datum
En vanlig uppgift är att beräkna hur många dagar det är fram till ett framtida datum. Subtrahera dagens datum från måldatumet.
require 'date'
target = Date.new(2026, 12, 25)
from = Date.new(2026, 5, 30)
puts("#{(target - from).to_i} days to go")Mäta förfluten tid
Om Du vill mäta hur lång tid kod tar, hämtar Du Time.now före och efter körningen och subtraherar sedan värdena.
start = Time.now
sum = 0
1000.times { |i| sum += i }
puts("sum=#{sum}")
puts((Time.now - start) >= 0)Snabbtest
Vad returnerar Ruby när Du subtraherar en Time från en annan?
Sammanfattning: Tidsaritmetik
Nu kan Du beräkna med tid:
- Time adderar och subtraherar i sekunder
- Date adderar och subtraherar i dagar
- Time minus Time ger sekunder (Float)
- Date minus Date ger dagar (Rational)
next_month,>>,<<förskjuter månader säkert
require 'date'
puts((Date.new(2026,6,1) - Date.new(2026,5,1)).to_i)Lär dig Ruby med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 29
- Lektioner
- 109
Vanliga frågor
Är lektionen ”Tidaritmetik” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Ruby Academy, inklusive ”Tidaritmetik”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Ruby Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Tidaritmetik”?
Varaktigheter och skillnader. Ni övar på Ruby Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Ruby Academy?
Du behöver inga förkunskaper. Utbildningen i Ruby Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Tidaritmetik”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Ruby Academy-lektionen?
Ja. Varje Ruby Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.