Помогите с datetime

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Здравствуйте, никак не могу нормально сделать одну программку. Вот код:
Python:
import pickle
from datetime import datetime, date, time
import datetime
import time
import sys

#Класс для облегчение программы
class program():
    
#Функции для облегчение строение программы
    def new(self):
        data = {}
        print("'''Создание напоминание'''")
        print("Как называется напоминание?")
        self.text = input(">")

        with open("self.text.pickle", "wb") as f:
            pickle.dump(self.text, f)

        print("Укажите время")
        self.t = int(input("Вводите в стиле ЧЧММCС\n>").format("%H:%M:%S"))
        print("Укажите дату")
        self.d = int(input("Вводите в стиле ДДММГГГГ\n>").format("%d/%m/%Y"))
        print("Вы указали на\n>", self.d, self.t)
    
    def view(self):
        print("<Список напоминаний>")
        print("====================")
        with open("self.text.pickle", "rb") as f:
            self.text_new = pickle.load(f)
        print(self.text_new)

    def deadline(self):
        while True:
            self.now = datetime.datetime.now()
            self.today = datetime.datetime.today()
            if self.today >= self.d:
                if self.now >= self.t:
                    print("WTF")


    #def delete(self):

    #def save(self):

    #def exit(self):

#Это для того чтобы пользователь сам мог добавить свое имя
saved_name = None
try:
    with open("user.txt", "r", encoding="utf-8") as f:
        saved_name = f.read()
except:
    pass

if saved_name:
    print("Добрый день", saved_name)
else:
    print("Добрый день, как вас зовут?")
    name = input("Введите ваше имя\n|>")
    with open("user.txt", "w", encoding="utf-8") as f:
        f.write(name)
Код:

В функции def new() надо создавать напоминание, но оно не работает, за работу отвечает функция def deadline()
Вот ошибка, я её понимаю, но как исправить чтобы работало не знаю:
Python:
Traceback (most recent call last):
  File "Napominalka.py", line 71, in <module>
    program.deadline()
  File "Napominalka.py", line 37, in deadline
    if self.today >= self.d:
TypeError: '>=' not supported between instances of 'datetime.datetime' and 'int'
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Приводите дату не к int а к datetime:
Python:
self.d = int(input("Вводите в стиле ДДММГГГГ\n>").format("%d/%m/%Y"))
замените на:
Python:
self.d = input("Вводите в стиле ДД/ММ/ГГГГ\n>")
self.d = datetime.datetime.strptime(d, '%d/%m/%Y')
потом сможете сравнить self.d и datetime.datetime.today()
 
  • Мне нравится
Реакции: Максим Грушин

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Приводите дату не к int а к datetime:
Python:
self.d = int(input("Вводите в стиле ДДММГГГГ\n>").format("%d/%m/%Y"))
замените на:
Python:
self.d = input("Вводите в стиле ДД/ММ/ГГГГ\n>")
self.d = datetime.datetime.strptime(d, '%d/%m/%Y')
потом сможете сравнить self.d и datetime.datetime.today()
Спасибо!
 

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Приводите дату не к int а к datetime:
Python:
self.d = int(input("Вводите в стиле ДДММГГГГ\n>").format("%d/%m/%Y"))
замените на:
Python:
self.d = input("Вводите в стиле ДД/ММ/ГГГГ\n>")
self.d = datetime.datetime.strptime(d, '%d/%m/%Y')
потом сможете сравнить self.d и datetime.datetime.today()
Получилось, только вместо d надо self.d

Python:
self.d = input("Вводите в стиле ДД/ММ/ГГГГ\n>")
self.d = datetime.datetime.strptime(self.d, '%d/%m/%Y')
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Получилось, только вместо d надо self.d

Python:
self.d = input("Вводите в стиле ДД/ММ/ГГГГ\n>")
self.d = datetime.datetime.strptime(self.d, '%d/%m/%Y')
Я код без self писал, потом просто забыл добавить в одном месте self.
 
  • Мне нравится
Реакции: Максим Грушин

Форум IT Специалистов