Tema:
Una secta afirmó una vez que el 31 de diciembre de 1999 era el fin del mundo. Por supuesto, el rumor es contraproducente.
Algunas personas dicen que 31 de diciembre a finales de siglo un cierto en el futuro, si es lunes, será ...
Curiosamente, 31 de diciembre de cualquier año, al final del siglo no puede ser Lunes !!
Así, "fabricante de rumores "Modificado de nuevo al domingo ...
El 31 de diciembre de 1999 es viernes. ¿Puedo preguntar: cuál de los siglos más cercanos en el futuro (es decir, xx99) será el domingo (es decir, domingo) el 31 de diciembre?
Conteste el año (solo escriba este número entero de 4 dígitos, no escriba información redundante como el 31 de diciembre)
Solución_1:
La idea principal es calcular la diferencia horaria.
Sabiendo que el 31 de diciembre de 1999 es viernes
, la diferencia horaria se puede usar para calcular la semana del 31 de diciembre al final de cada siglo
sumando 5 a la diferencia horaria y dividiéndola por siete. .
Si el resto es 0, significa que este día es el domingo
hasta el juicio. Salida después del domingo al final del siglo
Código_1:
import datetime
i = 20
first_day = datetime.datetime.strptime('1999-12-31', '%Y-%m-%d')
while True:
day = datetime.datetime.strptime('{}99-12-31'.format(i), "%Y-%m-%d")
delta = day - first_day
if (delta.days + 5) % 7 == 0:
print('{}99'.format(i))
break
else:
i += 1
Solución_2:
juzgue directamente el 31 de diciembre del final de cada siglo.
Utilice la función isoweekday en el módulo datetime.
Si el día es domingo (el valor de la función vuelve a 7),
muestre el año
Código_2:
import datetime
i = 19
while True:
day = datetime.datetime.strptime('{}99-12-31'.format(i), "%Y-%m-%d").isoweekday()
if day == 7:
print('{}99'.format(i))
break
else:
i += 1