En este artículo, vamos a crear una Calculadora de EDAD que mostrará su edad en años, meses y días con la ayuda de la fecha actual. Usaremos el módulo PyWebIO para crear una interfaz simple e interactiva en la web. Este es un módulo de Python que se utiliza principalmente para crear interfaces simples e interactivas en la web utilizando la programación de Python. Se puede instalar usando el siguiente comando:
pip install pywebio
Implementación paso a paso:
Paso 1: Importe todos los módulos requeridos.
Python3
# Import the following modules from dateutil.relativedelta import relativedelta from datetime import datetime from time import strptime from pywebio.input import * from pywebio.output import * from pywebio.session import * import time
Paso 2: Obtener la hora actual y recibir información del usuario.
Python3
# Getting Current time. date = datetime.now().strftime("%d/%m/%Y") # Taking age from the user DOB = input("", placeholder = "Your Birth Date(dd/mm/yyyy)")
Paso 3: Comprobar si el formato de edad es correcto o no.
Python3
try: # Check whether the input age format # is same as given format val = strptime(DOB, "%d/%m/%Y") except: # If format is different, then through # an error. put_error("Alert! This is not the right format") time.sleep(3) # sleep for 3 seconds continue
Paso 4: Divida la fecha de nacimiento del usuario y la fecha actual por ‘/’. Y luego Typecast todas las partes divididas en el número entero. Intercambie meses y años tanto para la fecha de nacimiento del usuario como para la fecha actual.
Python3
# Split the age by '/' in_date = DOB.split('/') # split the todays date by '/' date = date.split('/') # Typecast all the converted part # into the int. in_date = [int(i) for i in in_date] date = [int(i) for i in date] newdate = [] # Swap days with years in_date[0], in_date[2] = in_date[2], in_date[0] # Swap days with years date[0], date[2] = date[2], date[0]
Paso 5: compruebe si el año actual es menor que el año de nacimiento del usuario. Si el año actual es más pequeño que por un error.
Python3
if in_date <= date: now = datetime.strptime(DOB, "%d/%m/%Y") # Display output in a pop window popup("Your Age",k [put_html("<h4>"f"{relativedelta(datetime.now(),now).years} Years</br> \ {relativedelta(datetime.now(),now).months} Months</br>\ {relativedelta(datetime.now(),now).days} Days""</h4>"), put_buttons( ['Close'], onclick=lambda _: close_popup())], implicit_close=True) else: # If you input the year greater than current year put_warning( f"No result found, this is {date[0]}, and you can't be in {in_date[0]}.")
Código completo:
Python3
# Import the following modules from dateutil.relativedelta import relativedelta from datetime import datetime from time import strptime from pywebio.input import * from pywebio.output import * from pywebio.session import * import time # Run infinite loop while True: clear() # Put a heading Age Calculator put_html("<p align=""left""><h4> AGE CALCULATOR</h4></p> ") # Getting Current time. date = datetime.now().strftime("%d/%m/%Y") # Taking age from the user DOB = input("", placeholder="Your Birth Date(dd/mm/yyyy)") try: # Check whether the input age # format is same as given format val = strptime(DOB, "%d/%m/%Y") except: # If format is different, then through an error. put_error("Alert! This is not the right format") # sleep for 3 seconds time.sleep(3) continue in_date = DOB.split('/') date = date.split('/') # Typecast all the converted part into the int. in_date = [int(i) for i in in_date] date = [int(i) for i in date] # Define an empty list newdate = [] # Swap days with years in_date[0], in_date[2] = in_date[2], in_date[0] # Swap days with years date[0], date[2] = date[2], date[0] if in_date <= date: now = datetime.strptime(DOB, "%d/%m/%Y") # Display output popup("Your Age", [put_html("<h4>"f"{relativedelta(datetime.now(),now).years} Years</br> \ {relativedelta(datetime.now(),now).months} Months</br>\ {relativedelta(datetime.now(),now).days} Days""</h4>"), put_buttons( ['Close'], onclick=lambda _: close_popup())], implicit_close=True) else: # If you input the year greater than current year put_warning( f"No result found, this is {date[0]}, and you can't be in {in_date[0]}.") time.sleep(3) clear() # Give user a choice choice = radio("Do you want to calculate again?", options=['Yes', 'No'], required=True) if choice.lower() == 'yes': continue else: clear() # Show a toast notification toast("Thanks a lot!") exit()
Producción:
Publicación traducida automáticamente
Artículo escrito por gittysatyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA