Обработка дат в программе с GUI на базе PyQt6

Программа рассчитывает разницу в днях между двумя датами. В случае, если вторая дата оказывается раньше первой, программа сообщает об ошибке.

Пример работы программы:

Код программы:


    # Импортируем модуль sys, который обеспечивает доступ к некоторым переменным и функциям, взаимодействующим с интерпретатором python.
    import sys
    # Импортируем модуль datetime, позволяющий работать с датами
    import datetime
    # Импортируем модуль uic для подключени я форм в формате ui.
    from PyQt6 import uic
    # Импортируем виджеты PyQt5.
    from PyQt6.QtWidgets import QApplication, QDialog
    class Window(QDialog):
        # Конструируем окно. 
        def __init__(self):
            # Вызываем функцию super(), чтобы разрешить Qt настраивать объект.
            super().__init__()
            # Подключаем файл с формой.
            uic.loadUi("form.ui", self)
            # Создаём сигнал - при нажатии на кнопку вызывается функция povtor.
            self.pushButton.clicked.connect(self.funk)
        def funk(self):
            #Забираем даты из формы
            self.formData1 = self.dateEdit1.date()
            self.formData2 = self.dateEdit2.date()
            #Преобразуем даты из формы в фомат Python
            self.data1 = self.formData1.toPyDate()
            self.data2 = self.formData2.toPyDate()
            #Определяем разницу дат
            self.raznost = self.data2 - self.data1
            #Преобразуем разницу дат в дни
            self.raznostVDnyah = int(self.raznost.days)
            #Определяем положительная разница дат или нет
            if self.raznostVDnyah >= 0:
                #Заполняем заголовок
                self.zagolovok.setText("Разница между датами:")
                #Заполняем строку
                self.lineEdit.setText(str(self.raznostVDnyah))  
            else:
                #Заполняем заголовок
                self.zagolovok.setText("Вторая дата раньше первой!")
                #Заполняем строку
                self.lineEdit.setText("Ошибка!") 
    # Создаём экземпляр приложения.
    app = QApplication(sys.argv)
    # Создаём экземпляр окна.
    window = Window()
    # Выводим окно на экран.
    window.show()
    # Запускаем цикл приложения.
    app.exec()    

Форма:

Добавить комментарий