Уведомления

Группа в Telegram: @pythonsu

#1 Май 8, 2023 22:54:25

jmj26
Зарегистрирован: 2023-01-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить день недели

Добрый день!
Просьба подсказать, в чем моя ошибка и как её исправить. При помощи выпадающего списка необходимо выбрать дату и получить по ней день недели. Буду рад любой помощи!

 import tkinter as tk
import tkinter.ttk as ttk
from datetime import timedelta
import datetime
today = datetime.datetime.today()
timedelta(days = 1)
n= datetime.datetime.today()+timedelta(days = 1)
m= datetime.datetime.today()+timedelta(days = 2)
p= datetime.datetime.today()+timedelta(days = 3)
colors = (today, n.strftime("%d-%m-%Y"), m.strftime("%d-%m-%Y"), p.strftime("%d-%m-%Y"))
class About(tk.Toplevel):
    def __init__(self, parent):
        super().__init__()
        self.title("Ttk Combobox")
        self.label = ttk.Label(self, text="Пожалуйста, выберите дату и маршрут")
   
        self.combo = ttk.Combobox(self, values=colors)
        self.label.pack(pady=10)
   
        self.combo.pack(side=tk.LEFT, padx=10, pady=5)
       
       
        self.button = tk.Button(self, text="Формирование",
                             command=self.display_color)      
        self.button.pack(pady=5, ipadx=2, ipady=2)
        #---начальное значение комбобокса--------------------------------
        self.combo.current(1)
        #--------------------------------------------------------
    def display_color(self, *args):
        color = self.combo.get()
        #print("Ваш выбор", color)
        # проверка на пустое значение комбобокса
        if not color:
            color="Введите номер маршрута из списка!"
            print(color)
        else:
            print(color)
        from datetime import date
        import calendar
 
        from datetime import date
       
       
        import calendar
   
        my_date = n
        t=calendar.day_name[my_date.weekday()]  #'Wednesday'
        print(t)
    def clear_color(self):
        self.combo.set("")
class App(tk.Tk):
    def __init__(self):
        super().__init__()
        #btn_info = tk.Button(self, text="Печать графика заездов на неделю", bg='turquoise1',
        #                     command=self.destroy)      
        btn_info2 = tk.Button(self, text="Печать графика заездов на день", bg='LightGreen',
                             command=self.open_window)
               
        opts = {'padx': 40, 'pady': 5, 'expand': True, 'fill': tk.BOTH}
        #btn_info.pack(**opts)
        btn_info2.pack(**opts)
       
       
    def open_window(self):
        about = About(self)
        about.grab_set()
if __name__ == "__main__":
    app = App()
    app.mainloop()

Офлайн

#2 Май 9, 2023 00:01:34

jmj26
Зарегистрирован: 2023-01-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить день недели

Уточнение..

 import tkinter as tk
import tkinter.ttk as ttk
from datetime import timedelta
import datetime
today = datetime.datetime.today()
timedelta(days = 1)
n= datetime.datetime.today()+timedelta(days = 1)
m= datetime.datetime.today()+timedelta(days = 2)
p= datetime.datetime.today()+timedelta(days = 3)
colors = (today.strftime("%d-%m-%Y"), n.strftime("%d-%m-%Y"), m.strftime("%d-%m-%Y"), p.strftime("%d-%m-%Y"))
class About(tk.Toplevel):
    def __init__(self, parent):
        super().__init__()
        self.title("Ttk Combobox")
        self.label = ttk.Label(self, text="Пожалуйста, выберите дату и маршрут")
   
        self.combo = ttk.Combobox(self, values=colors)
        self.label.pack(pady=10)
   
        self.combo.pack(side=tk.LEFT, padx=10, pady=5)
       
       
        self.button = tk.Button(self, text="Формирование",
                             command=self.display_color)      
        self.button.pack(pady=5, ipadx=2, ipady=2)
        #---начальное значение комбобокса--------------------------------
        self.combo.current(1)
        #--------------------------------------------------------
    def display_color(self, *args):
        color = self.combo.get()
        #print("Ваш выбор", color)
        # проверка на пустое значение комбобокса
        if not color:
            color="Введите номер маршрута из списка!"
            print(color)
        else:
            print(color)
        from datetime import date
        import calendar
 
        from datetime import date
       
       
        import calendar
   
        my_date = color
        t=calendar.day_name[my_date.weekday()]  #'Wednesday'
        print(t)
    def clear_color(self):
        self.combo.set("")
class App(tk.Tk):
    def __init__(self):
        super().__init__()
        #btn_info = tk.Button(self, text="Печать графика заездов на неделю", bg='turquoise1',
        #                     command=self.destroy)      
        btn_info2 = tk.Button(self, text="Печать графика заездов на день", bg='LightGreen',
                             command=self.open_window)
               
        opts = {'padx': 40, 'pady': 5, 'expand': True, 'fill': tk.BOTH}
        #btn_info.pack(**opts)
        btn_info2.pack(**opts)
       
       
    def open_window(self):
        about = About(self)
        about.grab_set()
if __name__ == "__main__":
    app = App()
    app.mainloop()

Офлайн

#3 Май 9, 2023 00:07:24

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Получить день недели

расскажи про этот метод

 
def display_color(self, *args):
color = self.combo.get()
# print("Ваш выбор", color)
# проверка на пустое значение комбобокса
if not color:
color = "Введите номер маршрута из списка!"
print(color)
else:
print(color)
from datetime import date
import calendar

from datetime import date

import calendar

my_date = color
t = calendar.day_name[my_date.weekday()] # 'Wednesday'

почему названо color? я со стороны читаю и не понимаю что за цвет

Офлайн

#4 Май 9, 2023 00:11:48

jmj26
Зарегистрирован: 2023-01-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить день недели

color - просто переменная, можно было назвать как угодно. Вопрос в том, что мне почему-то не удается получить день недели по выбранной дате…

Офлайн

#5 Май 9, 2023 00:14:35

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Получить день недели

jmj26
можно было назвать как угодно.
оу,оу полегче, названия даешь не для компьютера, ему точно все равно, их даешь для себя и для других. Код должен комментировать сам себя

  
        def display_date(self, *args):
        date = self.combo.get()
  
        if not date:
            date = "Введите номер маршрута из списка!"
            print(date)
        else:
            print(date)
        weekday = datetime.datetime.strptime(date, '%d-%m-%Y').strftime('%A')
        print(weekday)

или вот полностью

  
import tkinter as tk
import tkinter.ttk as ttk
from datetime import timedelta
import datetime
today = datetime.datetime.today()
timedelta(days=1)
n = datetime.datetime.today() + timedelta(days=1)
m = datetime.datetime.today() + timedelta(days=2)
p = datetime.datetime.today() + timedelta(days=3)
colors = (today.strftime("%d-%m-%Y"), n.strftime("%d-%m-%Y"), m.strftime("%d-%m-%Y"), p.strftime("%d-%m-%Y"))
class About(tk.Toplevel):
    def __init__(self, parent):
        super().__init__()
        self.title("Ttk Combobox")
        self.label = ttk.Label(self, text="Пожалуйста, выберите дату и маршрут")
        self.combo = ttk.Combobox(self, values=colors)
        self.label.pack(pady=10)
        self.combo.pack(side=tk.LEFT, padx=10, pady=5)
        self.button = tk.Button(self, text="Формирование",
                                command=self.display_date)
        self.button.pack(pady=5, ipadx=2, ipady=2)
        # ---начальное значение комбобокса--------------------------------
        self.combo.current(1)
        # --------------------------------------------------------
    def display_date(self, *args):
        date = self.combo.get()
        if not date:
            date = "Введите номер маршрута из списка!"
            print(date)
        else:
            print(date)
        weekday = datetime.datetime.strptime(date, '%d-%m-%Y').strftime('%A')
        print(weekday)
    def clear_color(self):
        self.combo.set("")
class App(tk.Tk):
    def __init__(self):
        super().__init__()
        # btn_info = tk.Button(self, text="Печать графика заездов на неделю", bg='turquoise1',
        #                     command=self.destroy)
        btn_info2 = tk.Button(self, text="Печать графика заездов на день", bg='LightGreen',
                              command=self.open_window)
        opts = {'padx': 40, 'pady': 5, 'expand': True, 'fill': tk.BOTH}
        # btn_info.pack(**opts)
        btn_info2.pack(**opts)
    def open_window(self):
        about = About(self)
        about.grab_set()
if __name__ == "__main__":
    app = App()
    app.mainloop()

на русском
  
    def display_date(self, *args):
        date = self.combo.get()
        if not date:
            date = "Введите номер маршрута из списка!"
            print(date)
        else:
            print(date)
        days = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье']
        date_obj = datetime.datetime.strptime(date, '%d-%m-%Y')
        print(days[date_obj.weekday()])

Отредактировано xam1816 (Май 9, 2023 00:22:11)

Офлайн

#6 Май 9, 2023 00:27:33

jmj26
Зарегистрирован: 2023-01-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить день недели

Спасибо огромное! Всё получилось!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version