Ruby Academy · Aula

Aritmética de horários

Durações e diferenças.

Aula 3 de 413 etapas

Aritmética de horários é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.

Adicionando segundos a um horário

A aritmética de Time funciona em segundos. Adicionar um número a um objeto Time o adianta essa quantidade de segundos.

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

Subtraindo segundos

Subtrair um número atrasa um objeto Time essa quantidade de segundos.

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

Durações legíveis

Expresse as durações como produtos de segundos para deixar a intenção clara: 60 segundos, 60 * 60 uma hora, 24 * 60 * 60 um dia.

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

Diferença entre dois horários

Subtrair um objeto Time de outro resulta em um Float de segundos entre eles.

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)

Convertendo uma duração

Converta uma diferença bruta em segundos para horas e minutos usando aritmética inteira.

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

Aritmética de datas em dias

Ao contrário de Time, a classe Date adiciona em dias. Adicionar um inteiro avança essa quantidade de dias.

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

Diferença entre datas

Subtrair dois objetos Date retorna um número Rational de dias. Chame to_i para obter a contagem de dias inteiros.

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

Deslocando meses e anos

A classe Date tem next_month, prev_month, next_year e os operadores >> / << para deslocar meses com segurança.

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

Segurança no fim do mês

O deslocamento de meses limita o resultado a datas válidas. Adicionar um mês a 31 de janeiro resulta no último dia válido de fevereiro, nunca em uma data inválida.

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

Contando os dias até uma data

Uma tarefa comum: saber quantos dias faltam para uma data futura. Subtraia a data de hoje da data-alvo.

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

Medindo o tempo decorrido

Para medir quanto tempo o código leva, capture Time.now antes e depois e, em seguida, faça a subtração.

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

Verificação rápida

Quando o senhor subtrai um Time de outro, o que o Ruby retorna?

Recapitulação: aritmética de Time

Agora o senhor pode fazer cálculos com o tempo:

  • Time adiciona e subtrai em segundos
  • Date adiciona e subtrai em dias
  • Time menos Time resulta em segundos (Float)
  • Date menos Date resulta em dias (Rational)
  • next_month, >> e << deslocam meses com segurança
require 'date'
puts((Date.new(2026,6,1) - Date.new(2026,5,1)).to_i)
Grátis para começar

Aprenda Ruby com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
29
Aulas
109

Perguntas Frequentes

A aula “Aritmética de horários” é grátis?

Sim — o texto completo de “Aritmética de horários” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.

O que vou aprender em “Aritmética de horários”?

Durações e diferenças. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Ruby Academy?

Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Aritmética de horários”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Ruby Academy?

Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Classes de data e hora
  2. Análise e formatação
  3. Aritmética de horários
  4. Fusos horários
← Voltar para Ruby Academy