Skip to content

Instantly share code, notes, and snippets.

@RobertoBarros
Last active July 19, 2024 01:08
Show Gist options
  • Save RobertoBarros/991458839661bb1c36666f66c55c56a1 to your computer and use it in GitHub Desktop.
Save RobertoBarros/991458839661bb1c36666f66c55c56a1 to your computer and use it in GitHub Desktop.
# 'date' é uma biblioteca padrão no Ruby que nos permite trabalhar com datas.
require "date"
# Definindo um método chamado 'days_to_xmas'.
# Ela tem um parâmetro chamado 'today' que recebe o dia ao qual se deve calcular.
def days_to_xmas(today)
year = today.year
xmas_date = Date.new(year, 12, 25)
days = (xmas_date - today).to_i
# Se a quantidade de dias for negativa, então já passou do natal
# porém ainda estamos no mesmo ano
if days < 0
xmas_date = Date.new(year + 1, 12, 25) # Portanto, vamos considerar o próximo ano
days = (xmas_date - today).to_i # Recalcular a quantidade de dias considerando o próximo ano
end
days
end
# Dias para o natal a partir de hoje
date = Date.today
puts "Hoje é #{date.strftime("%d/%m/%Y")}. Faltam #{days_to_xmas(date)} dias para o natal."
# Dias para o natal a partir de 31/12/2024
date = Date.new(2024, 12, 31)
puts "Hoje é #{date.strftime("%d/%m/%Y")}. Faltam #{days_to_xmas(date)} dias para o natal."
# Dias para o natal a partir de 1/1/1920
date = Date.new(1920, 1, 1)
puts "Hoje é #{date.strftime("%d/%m/%Y")}. Faltam #{days_to_xmas(date)} dias para o natal."
# Dias para o natal a partir de 1/1/2077
date = Date.new(2077, 1, 1)
puts "Hoje é #{date.strftime("%d/%m/%Y")}. Faltam #{days_to_xmas(date)} dias para o natal."
# Dias para o natal a partir de 26/12/2077
date = Date.new(2077, 12, 26)
puts "Hoje é #{date.strftime("%d/%m/%Y")}. Faltam #{days_to_xmas(date)} dias para o natal."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment