В общем, баловался с созданием часов, всё сделал, но не могу придумать элегантное решение для того, чтобы добавить нули перед целыми числами и после них, как в случае
минут от 0 до 10, и часов от 0 до 10, в которых не хватает нолей.
В итоге время 00:00 минут выглядит так: 0 : 0
Может как-то делать проверку на minutes < 10?
Или использовать строку?
Или использовать дробное число, а позже в момент вывода отсекать его и преобразовывать в строку, для сохранения двух нулей?
Просто на момент вывода там уже синтаксис питона не совсем актуален, поэтому условие при выводе я сделать не могу. Это связано со спецификой игрового движка, в котором это происходит. Поэтому нужно в самом классе описать вывод этих цифр в должном виде. При выводе там вот что:
vbox:
$ hours, minutes, weekday, day, month, year = time.get_time()
text hours + ':' + minutes size 40 xalign .5
text weekday
grid 3 1:
text day
text month
text year
Вот сам код
class Time:
def __init__(self):
self.min_step = 0
self.hour_step = 0
self.mins = 12
self.hour = 6
self.day = 1 # День. Максимальное кол-во дней сравнивается с кол-во дней в каждоме месяце
self.year = 2022
self.week_day = 5 # число от 0 до 6, определяет смену дня недели
self.week_days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']
self.month = 0 # число от 0 до 11, определяет смену месяца
# self.months = ["Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"]
self.months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"]
self.month_day = 0 # Индекс. Определяет лимит дней в каждом месяце
self.month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
def get_time(self):
if self.mins > 59:
self.mins = 0
self.hour += 1
if self.hour > 23:
self.hour = 0
self.day += 1
self.week_day += 1
if self.week_day > 6:
self.week_day = 0
if self.day > self.month_days[self.month]:
self.day = 1
self.month += 1
if self.month > 11:
self.month = 0
self.year += 1
return str(self.hour), str(self.mins), self.week_days[self.week_day], str(self.day), self.months[self.month], str(self.year)