Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 23.12.2019
Сообщений: 3

Форматирование db.TIME в необычный формат

04.01.2020, 00:33. Показов 743. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте!

Я решил задачу, однако возможно есть более удобный и правильный способ реализации – прошу подсказать. Использую Flask, следующая функция реализована в models.py, а вызывается в шаблонах:

Python
1
2
3
4
5
6
7
8
9
10
11
    def duration_string(self):
        if self.duration.hour > 0:
            text = 'hour'
            if self.duration.hour > 1:
                text = 'hours'
            if self.duration.minute > 0:
                return '{} {} {} minutes'.format(self.duration.hour, text, self.duration.minute)
            else:
                return str(self.duration.hour) + " " + text
        else:
            return '{} minutes'.format(self.duration.minute)
Добавлено через 1 минуту
Задача была выводить время в следующих форматах:

1 hour 30 minutes
1 hour (если минут нет)
30 minutes (если нет часов)
2 hours (если 1 > часов)

Добавлено через 1 минуту
Само поле:
Python
1
duration = db.Column(db.TIME, nullable=False)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.01.2020, 00:33
Ответы с готовыми решениями:

Нужно преобразовать xsl на необычный такой формат
Доброго времени! В аптечной программе Astor надо реестр ЖВНЛП обновить, и для этого .xsl формат надо преобразовать в какой-то необычный...

Искать необычный формат даты в datagridview через dateTimePicker
В datagridview есть столбец Дата-Время Дата и месяц обозначается 2102 Время обозначается 12.25 Вместе получается 2102-12.25 Я на...

Форматирование периодов в Joda Time
Добрый день. Нужно отформатировать период чтобы показывал 46m 40s PM. Пишу простенький PeriodFormatter, задаю интервал времени и о чудо......

1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.01.2020, 18:59
Вроде, норм. Только строку переписать:
Цитата Сообщение от pyok Посмотреть сообщение
return str(self.duration.hour) + " " + text
Хм, а если и часы, и минуты равны 0?

Я бы постарался, чтобы было меньше вложенности. Ранний выход, вроде называется:
Python
1
2
3
def duration_string(self):
    if self.duration.hour == 0:
        return '{} minutes'.format(self.duration.minute)
Хотя в данном случае можно решить так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def duration_string(self):
    return self._duration_string(self.duration.hour, self.duration.minute)
 
@staticmethod
def _duration_string(hour, minute):
    """
    >>> _duration_string(0, 1)
    '1 minutes'
    """
    result = []
    if hour == 1:
        result.append('{} hour'.format(hour))
    elif hour > 1:
        result.append('{} hours'.format(hour))
    if minute != 0:
        result.append('{} minutes'.format(minute))
    return ' '.join(result)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.01.2020, 18:59
Помогаю со студенческими работами здесь

Формат TIME
Таблица такая: CREATE TABLE IF NOT EXISTS `Apteki` ( `id` int(5) unsigned NOT NULL AUTO_INCREMENT, `mon` time, `tue` time, ...

Как из даты Y-m-d H:i:s преобразовать в формат time()?
Есть несколько таблиц в которых есть время и дата в таком формате "Y-m-d H:i:s" (DATETIME) надо их все переделать в time() Кто ни будь...

Автоматическое форматирование тексбокса в определенный формат.
Как сделать чтобы при вводе в текстбокс данные автоматически форматировались, например, в формат даты (27.01.02)

Как преобразовать дату дд.мм.гггг в формат time()?
Как преобразовать дату дд.мм.гггг в формат time()? чтобы знать число секунд прошедшей от даты 1970 года

Необычный код - необычный результат.
Бросте на форму PaintBox и сделайте Align alClient. В OnPaint напишите так: procedure TForm1.PaintBox1Paint(Sender: TObject); var ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru