Skip to content

Instantly share code, notes, and snippets.

@ricardosiri68
Last active April 10, 2016 01:44
Show Gist options
  • Save ricardosiri68/ee1c96df7cb4896f41e2f39fc02b6e90 to your computer and use it in GitHub Desktop.
Save ricardosiri68/ee1c96df7cb4896f41e2f39fc02b6e90 to your computer and use it in GitHub Desktop.
from datetime import datetime
from collections import namedtuple
def read_data():
'''gestiona la entrada de datos del usuario via el standar input'''
RawData = namedtuple('RawData', ('raw_date', 'raw_today'))
data = input("Ingrese fecha de nacimiento y fecha actual (dd/mm/yyyy)"
" separados por una coma:\n> ")
try:
return RawData(*data.split(','))
except TypeError:
raise TypeError("Formato de entrada incorrecto: revise el modo en que"
" separa el nombre y la fecha del usuario")
def get_days_lapse(raw_date="", raw_today=""):
'''obtiene el lapso de tiempo en dias segun los datos del usuario'''
input_date_format = '%d/%m/%Y'
try:
today = datetime.strptime(raw_today.strip(), input_date_format)
user_date = datetime.strptime(raw_date.strip(), input_date_format)
except ValueError:
raise ValueError("Formato de fecha invalido")
assert today >= user_date, Exception("La fecha de nacimiento debe ser"
" anterior a la fecha actual")
return (today - user_date).days
if __name__ == '__main__':
print("Han pasado %(days)d días desde que nací... ya se!!! soy hermoso :3" %
{'days': get_days_lapse(*read_data())})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment