Programa Python para encontrar a data de nascimento no mesmo dia em que você nasceu
Escreva um programa para encontrar datas de nascimento até um determinado ano no mesmo dia em que você nasceu. Deixe a entrada ter o formato: AAAA-MM-DD
Exemplos:
Input: 1996-11-12
Output: ['1996-11-12', '2002-11-12', '2013-11-12', '2019-11-12', '2024-11-12', '2030-11-12', '2041-11-12', '2047-11-12']Entrada: 1992-11-2
Resultado: ['1992-11-2', '1998-11-2', '2009-11-2', '2015-11-2', '2020-11-2', '2026-11-2', '2037-11-2', '2043-11-2', '2048-11-2']
Recomendado: por favor, tente sua abordagem no {IDE} primeiro, antes de prosseguir para a solução.
Funções criadas:
- split_date (birthdate): Esta função divide a data fornecida pelo usuário em ano, mês e dia.
- get_birthday (birthdate): Esta função é usada para retornar o dia da semana em que o usuário nasceu.
- true_birthdays (birthdate): Esta função é usada para retornar uma lista de datas com o mesmo dia da semana em que o usuário nasceu.
Ajudar-nos-á encontrar a data de nascimento do mesmo dia em que o utilizador nasceu acima de três métodos. Em primeiro lugar, o usuário irá inserir a data e a split_date()
função irá dividir a data em ano, mês e dia. Em seguida, a função get_birthday()
será usada para encontrar o dia da semana para essa data específica. Por fim, a true_birthdays()
função será usada para encontrar a lista de todas as datas do mesmo dia da semana. Dentro desta função, um loop for iterará do ano de nascimento a um ano específico e verificará se a data de nascimento em qualquer ano específico tem o mesmo dia da semana ou não. Se o dia da semana for o mesmo, essa data será adicionada à lista de datas.
Abaixo está a implementação.
import
datetime
import
calendar
weekdays
=
[
"Monday"
,
"Tuesday"
,
"Wednesday"
,
"Thursday"
,
"Friday"
,
"Saturday"
,
"Sunday"
]
def
split_date(birthday):
year, month, day
=
birthday.split(
'-'
)
return
year, month, day
def
get_birthday(birthday):
year, month, day
=
split_date(birthday)
bdate
=
datetime.datetime(
int
(year),
int
(month),
int
(day))
weekday
=
bdate.weekday()
day
=
weekdays[weekday]
return
day
def
listToString(x):
String
=
" "
return
(String.join(x))
def
true_birthdays(birthdate):
year, month, day
=
split_date(birthdate)
year
=
birthdate[:
4
].split(
'-'
)
year
=
listToString(year)
d_day
=
get_birthday(birthdate)
true_BD
=
[]
j
=
0
for
i
in
range
(
int
(year),
2050
):
new_year
=
int
(year)
+
j
new_birthday
=
str
(
str
(new_year)
+
"-"
+
month
+
"-"
+
day)
new_d_day
=
get_birthday(new_birthday)
if
d_day
=
=
new_d_day:
true_BD.append(new_birthday)
else
:
pass
j
+
=
1
return
true_BD
def
main():
birthdate
=
"1996-11-12"
dates
=
true_birthdays(birthdate)
(dates)
main()
Resultado:
['1996-11-12', '2002-11-12', '2013-11-12', '2019-11-12', '2024-11-12', '2030-11-12', ' 2041-11-12 ',' 2047-11-12 ']
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva