from datetime import datetime
def obter_dados_usuario():
nome = input("Digite seu nome: ")
# Solicitando a data e hora como texto (String)
data_str = input("Digite a data (dd/mm/aaaa): ") # Ex: 15/02/2026
hora_str = input("Digite a hora (hh:mm): ") # Ex: 14:30
# Juntamos as duas strings em uma só para facilitar a conversão
texto_completo = f"{data_str} {hora_str}"
try:
# O strptime converte o texto no formato especificado para um objeto datetime real
# %d = dia, %m = mês, %Y = ano(4 dígitos), %H = hora, %M = minuto
data_convertida = datetime.strptime(texto_completo, "%d/%m/%Y %H:%M")
return nome, data_convertida
except ValueError:
# Se o usuário digitar errado (ex: 30/02 ou letras), o programa avisa
print("\n[ERRO] Formato inválido! Use dia/mês/ano e hora:minuto.")
return None, None
def dar_boas_vindas(nome, data_dt):
# Se a data não foi convertida (deu erro), paramos a função
if data_dt is None:
return
# Extraímos a hora do objeto que criamos
hora = data_dt.hour
if 5 <= hora < 12:
saudacao = "Bom dia"
elif 12 <= hora < 18:
saudacao = "Boa tarde"
else:
saudacao = "Boa noite"
# Exibe o resultado formatado
print("-" * 30)
print(f"{saudacao}, {nome.capitalize()}!")
# O strftime faz o inverso: transforma a data em texto bonito para exibir
#print(f"Data registrada: {data_dt.strftime('%d/%m/%Y')}")
#print(f"Horário registrado: {data_dt.strftime('%H:%M')}")
print("-" * 30)
if __name__ == "__main__":
nome, data_usuario = obter_dados_usuario()
if nome and data_usuario:
dar_boas_vindas(nome, data_usuario)