Skip to content

Instantly share code, notes, and snippets.

@RobertoBarros
Created May 22, 2026 01:00
Show Gist options
  • Select an option

  • Save RobertoBarros/35b0afc0f9c39ef1e431d855315d7918 to your computer and use it in GitHub Desktop.

Select an option

Save RobertoBarros/35b0afc0f9c39ef1e431d855315d7918 to your computer and use it in GitHub Desktop.
batch 2203 Livecode Days to Xmas
# 'date' é uma biblioteca padrão no Ruby que nos permite trabalhar com datas.
require 'date'
# Definindo uma função chamada 'days_to_xmas'. Ela tem um parâmetro chamado 'today' que por padrão é a data de hoje.
def days_to_xmas(today = Date.today)
# Pegamos o ano da data 'today' e o atribuímos à variável 'xmas_year'.
xmas_year = today.year
# Criamos um novo objeto de data para o dia de Natal do ano atual.
xmas_day = Date.new(xmas_year, 12, 25)
# Se a data 'today' for maior que 'xmas_day', então significa que o Natal deste ano já passou.
if today > xmas_day
# Então, aumentamos o ano em 1 para obter o próximo ano e o atribuímos à variável 'next_xmas_year'.
next_xmas_year = xmas_year + 1
# E então criamos um novo objeto de data para o dia de Natal do próximo ano.
xmas_day = Date.new(next_xmas_year, 12, 25)
end
# Ao subtrair a data 'today' da data 'xmas_day', obtemos a diferença em dias.
# Usamos 'to_i' para converter o resultado em um número inteiro.
# E então retornamos esse valor.
return (xmas_day - today).to_i
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 12/06/2026
today = Date.new(2026,6,12)
puts "Hoje é #{today.strftime('%d/%m/%Y')}. Faltam #{days_to_xmas(today)} dias para o natal."
# Dias para o natal a partir de 30/12/26
today = Date.new(2026,12,30)
puts "Hoje é #{today.strftime('%d/%m/%Y')}. Faltam #{days_to_xmas(today)} dias para o natal."
# Dias para o natal a partir de 26/12/2077
today = Date.new(2077,12,26)
puts "Hoje é #{today.strftime('%d/%m/%Y')}. Faltam #{days_to_xmas(today)} dias para o natal."
# Dias para o natal a partir de 25/12/2077
today = Date.new(2077,12,25)
puts "Hoje é #{today.strftime('%d/%m/%Y')}. Faltam #{days_to_xmas(today)} dias para o natal."
today = Date.new(2077,1,1)
puts "Hoje é #{today.strftime('%d/%m/%Y')}. Faltam #{days_to_xmas(today)} dias para o natal."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment