0Pricing
Ruby Academy · Lekcja

Działania arytmetyczne na czasie

Czasy trwania i różnice

Działania arytmetyczne na czasie to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.

Dodawanie sekund do obiektu Time

Działania arytmetyczne na obiektach Time wykonuje się w sekundach. Dodanie liczby do obiektu Time przesuwa go do przodu o podaną liczbę sekund.

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

Odejmowanie sekund

Odjęcie liczby przesuwa obiekt Time wstecz o podaną liczbę sekund.

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

Czytelne okresy czasu

Okresy czasu należy wyrażać jako iloczyny sekund, aby intencja była jasna: 60 sekund, 60 * 60 to godzina, a 24 * 60 * 60 to dzień.

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

Różnica między dwoma obiektami Time

Odjęcie jednego obiektu Time od drugiego zwraca wartość Float wyrażającą liczbę sekund między nimi.

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)

Konwertowanie okresu czasu

Należy przekształcić różnicę wyrażoną w surowych sekundach na godziny i minuty za pomocą arytmetyki całkowitoliczbowej.

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

Arytmetyka dat w dniach

W przeciwieństwie do Time klasa Date dodaje wartości w dniach. Dodanie liczby całkowitej przesuwa datę do przodu o podaną liczbę dni.

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

Różnica między dwiema datami

Odjęcie dwóch obiektów Date zwraca liczbę dni typu Rational. Należy wywołać to_i, aby uzyskać liczbę pełnych dni.

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

Przesuwanie miesięcy i lat

Klasa Date udostępnia metody next_month, prev_month, next_year oraz operatory >> / << do bezpiecznego przesuwania dat o całe miesiące.

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

Bezpieczne przechodzenie na koniec miesiąca

Przesuwanie o miesiące ogranicza wynik do poprawnych dat. Dodanie miesiąca do 31 stycznia daje ostatni poprawny dzień lutego, nigdy niepoprawną datę.

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

Obliczanie liczby dni do daty

Częste zadanie: obliczenie liczby dni pozostałych do przyszłej daty. Należy odjąć dzisiejszą datę od daty docelowej.

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

Mierzenie czasu wykonania

Aby zmierzyć czas działania kodu, należy pobrać Time.now przed jego wykonaniem i po nim, a następnie obliczyć różnicę.

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

Szybkie sprawdzenie

Co zwraca Ruby po odjęciu jednego obiektu Time od drugiego?

Podsumowanie: arytmetyka czasu

Mogą już Państwo wykonywać obliczenia związane z czasem:

  • Dodawanie i odejmowanie Time odbywa się w sekundach
  • Dodawanie i odejmowanie Date odbywa się w dniach
  • Time minus Time daje sekundy typu Float
  • Date minus Date daje dni typu Rational
  • next_month, >> i << bezpiecznie przesuwają daty o miesiące
require 'date'
puts((Date.new(2026,6,1) - Date.new(2026,5,1)).to_i)

Często zadawane pytania

Czy lekcja „Działania arytmetyczne na czasie” jest bezpłatna?

Tak — pełny tekst „Działania arytmetyczne na czasie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Działania arytmetyczne na czasie”?

Czasy trwania i różnice Ćwiczysz Ruby Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Ruby Academy?

Nie wymagamy żadnego doświadczenia. Ruby Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Działania arytmetyczne na czasie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Ruby Academy?

Tak. Każda lekcja Ruby Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Klasy czasu i daty
  2. Parsowanie i formatowanie
  3. Działania arytmetyczne na czasie
  4. Strefy czasowe
← Powrót do Ruby Academy