Last active
July 19, 2024 01:08
-
-
Save RobertoBarros/991458839661bb1c36666f66c55c56a1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# '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