PyQt5 – Calculadora de la edad del cumpleaños más cercano

En este artículo veremos cómo podemos crear una calculadora de cumpleaños más cercana a la edad. La calculadora de edad más cercana es la calculadora que se utiliza para obtener la edad más cercana a la fecha de nacimiento. A continuación se muestra cómo se ve la calculadora de edad más cercana . Concepto: podemos obtener la edad más cercana al cumpleaños al obtener la diferencia entre la fecha de nacimiento y la fecha actual con la ayuda de los objetos de fecha y hora de python. Contarán los años bisiestos y podemos obtener el número de días entre las fechas. Luego, estos días se pueden dividir con el 365.32422 para obtener los años, luego el valor redondo de los años será la edad más cercana al cumpleaños.

Pasos de implementación de la GUI: 1. Cree una etiqueta de encabezado que muestre el nombre de la calculadora 2. Cree una etiqueta para mostrar al usuario que seleccione la fecha de nacimiento 3. Cree un objeto QCalendarWidget para que el usuario seleccione la fecha de nacimiento 4. Cree un botón para calcular la fecha de nacimiento más cercana edad 5. Cree una etiqueta para mostrar la edad calculada Implementación de back-end:1. Cree el bloque de fecha futura del calendario, es decir, establezca la fecha actual como fecha máxima 2. Agregue una acción al botón pulsador 3. Dentro de la acción del botón pulsador, obtenga la fecha del calendario y la fecha actual 4. Obtenga el día, mes y año de ambas fechas 5. Cree un objeto datetime.date para ambas fechas 6. Obtenga la diferencia de ambas fechas y obtenga los días 7. Divida los días con 365.2422 (debido al año bisiesto) para obtener el total de años 8. Obtenga la ronda valor de los años y mostrar este valor a través de la etiqueta

A continuación se muestra la implementación. 

Python3

# importing libraries
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import datetime
import sys
 
 
class Window(QMainWindow):
 
    def __init__(self):
        super().__init__()
 
        # setting title
        self.setWindowTitle("Python ")
 
        # width of window
        self.w_width = 400
 
        # height of window
        self.w_height = 500
 
        # setting geometry
        self.setGeometry(100, 100, self.w_width, self.w_height)
 
        # calling method
        self.UiComponents()
 
        # showing all the widgets
        self.show()
 
    # method for components
    def UiComponents(self):
 
        # creating head label
        head = QLabel("Age Nearest Birthday Calculator", self)
 
        head.setWordWrap(True)
 
        # setting geometry to the head
        head.setGeometry(0, 10, 400, 60)
 
        # font
        font = QFont('Times', 15)
        font.setBold(True)
        font.setItalic(True)
        font.setUnderline(True)
 
        # setting font to the head
        head.setFont(font)
 
        # setting alignment of the head
        head.setAlignment(Qt.AlignCenter)
 
        # setting color effect to the head
        color = QGraphicsColorizeEffect(self)
        color.setColor(Qt.darkCyan)
        head.setGraphicsEffect(color)
 
        # creating a label
        b_label = QLabel("Select Birthday", self)
 
        # setting properties  label
        b_label.setAlignment(Qt.AlignCenter)
        b_label.setGeometry(50, 105, 300, 25)
        b_label.setStyleSheet("QLabel"
                              "{"
                              "border : 1px solid black;"
                              "background : rgba(70, 70, 70, 25);"
                              "}")
        b_label.setFont(QFont('Times', 9))
 
        # creating a calendar widget to select the date
        self.calendar = QCalendarWidget(self)
 
        # setting geometry of the calendar
        self.calendar.setGeometry(50, 130, 300, 180)
 
        # setting font to the calendar
        self.calendar.setFont(QFont('Times', 6))
 
        # getting current date
        date = QDate.currentDate()
 
        # blocking future dates
        self.calendar.setMaximumDate(date)
 
 
 
 
        # creating a push button
        calculate = QPushButton("Calculate Time", self)
 
        # setting geometry to the push button
        calculate.setGeometry(125, 340, 150, 40)
 
        # adding action to the calculate button
        calculate.clicked.connect(self.calculate_action)
 
        # creating a label to show percentile
        self.result = QLabel(self)
 
        # setting properties to result label
        self.result.setAlignment(Qt.AlignCenter)
        self.result.setGeometry(50, 400, 300, 60)
        self.result.setWordWrap(True)
        self.result.setStyleSheet("QLabel"
                                  "{"
                                  "border : 3px solid black;"
                                  "background : white;"
                                  "}")
        self.result.setFont(QFont('Arial', 11))
 
 
    def calculate_action(self):
 
        # getting birth date day
        birth = self.calendar.selectedDate()
 
        # getting year and month day of birth day
        birth_year = birth.year()
        birth_month = birth.month()
        birth_day = birth.day()
 
        # getting today date
        current = QDate.currentDate()
 
        # getting year and month day of current day
        current_year = current.year()
        current_month = current.month()
        current_day = current.day()
 
        # converting  dates into date object
        birth_date = datetime.date(birth_year, birth_month, birth_day)
        current_date = datetime.date(current_year, current_month, current_day)
 
        # getting difference in both the dates
        difference = current_date - birth_date
 
        # getting days from the difference
        difference = difference.days
 
        # getting years from the difference
        years = difference / 365.2422
 
        # getting round value of years
        years = round(years)
 
        # setting this value with the help of label
        self.result.setText("Closest Age is : " + str(years))
 
 
 
# create pyqt5 app
App = QApplication(sys.argv)
 
# create the instance of our Window
window = Window()
 
# start the app
sys.exit(App.exec())

Producción :

Publicación traducida automáticamente

Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *