Aritmética de horários
Durações e diferenças.
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)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
- Classes de data e hora
- Análise e formatação
- Aritmética de horários
- Fusos horários