Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202

Подсчет времени

22.12.2015, 20:30. Показов 3189. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, разности хранятся в time, нужно просуммировать их в цикле, но выдает ошибку.
хочу рассчитать стоимость проката авто за определенное количество дней.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def count_days_issuing(id_auto):
    register_type(UNICODE)
    conn = psycopg2.connect(CONN_STR)
    cur = conn.cursor()
    cur.execute('select date_issue from issuing_auto where id_auto=(%s)', [id_auto])
    cols = cur.description
    row = cur.fetchone()
    summ=0
    cur2 = conn.cursor()
    cur2.execute('select return_date from issuing_auto where id_auto=(%s)', [id_auto])
    cols = cur2.description
    row2 = cur2.fetchone()
 
    while row:
        for i in xrange(len(cols)):
             d= str(row[i])
             dv= str(row2[i])
             year,month,day=d.split('-')
             t2=date(int(year),int(month),int(day))
             print t2
             year,month,day=dv.split('-')
             t3=date(int(year),int(month),int(day))
             print t3
             time=t3-t2
             print time
             summ+=time
             print '#'*10
        row = cur.fetchone()
        row2 =cur2.fetchone()
    cur.close()
    conn.close()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.12.2015, 20:30
Ответы с готовыми решениями:

Найти разницу во времени (вычесть из одного времени другое)
Нужно найти разницу во времени: t1 - t2. Просто так объекты типа datetime отниматься не хотят. Нашел...

Преобразование даты времени UTC к локальному времени
Здравствуйте, возник такой вопрос: как в питоне реализовать преобразование даты времени в UTC к локальному времени? Например, начальный...

Подсчет времени занятия (по заданному времени начала и окончания)
В первой строке написано три целых числа A, B, C (0 ≤ A ≤ 23, 0 ≤ B ≤ 59, 0 ≤ C ≤ 59) - время начала занятия в часах, минутах и секундах. ...

12
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.12.2015, 21:02
Меня всегда поражает, когда "выдает ошибку" и никакой ошибки в сообщении)
0
 Аватар для orionit
8 / 8 / 2
Регистрация: 02.09.2015
Сообщений: 85
22.12.2015, 21:29
temasey,
Текст ошибки в студию .
0
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
22.12.2015, 21:31  [ТС]
orionit, Jabbson, просто я дилетант в этих делах Ошибка - TypeError: unsupported operand type(s) for +=: 'int' and 'datetime.timedelta'
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.12.2015, 21:38
Лучший ответ Сообщение было отмечено Jabbson как решение

Решение

Меня всегда поражает, когда "выдает ошибку" и никакой ошибки в сообщении)
Цитата Сообщение от temasey Посмотреть сообщение
summ+=time
Вот - разные типы данных - целое число и дата. Вы их складываете.
0
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
22.12.2015, 21:41  [ТС]
orionit, пытался преобразовать дату в число, выдает только цифры, а не число, еще выдает ошибку что переменная не объявлена
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.12.2015, 21:46
Лучший ответ Сообщение было отмечено temasey как решение

Решение

объявите summ как datetime.timedelta(0)

Добавлено через 28 секунд
тогда сможете прибавлять к нему разницу t3 и t2

Добавлено через 3 минуты
например

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> import datetime
>>>
>>> t1 = datetime.date(2015,12,22)
>>> t2 = datetime.date(2016,1,1)
>>>
>>> t3 = datetime.date(2016,1,1)
>>> t4 = datetime.date(2016,12,31)
>>>
>>> td1 = t2-t1
>>> td2 = t4-t3
>>>
>>> summ = datetime.timedelta(0)
>>>
>>> summ += td1
>>> summ
datetime.timedelta(10)
>>>
>>> summ += td2
>>> summ
datetime.timedelta(375)
>>>
0
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
22.12.2015, 21:49  [ТС]
Jabbson, Почему-то нет этого метода
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.12.2015, 21:49
ну так добавьте
Python
1
from datetime import timedelta
0
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
22.12.2015, 21:56  [ТС]
Jabbson, Видит timedelta при импортировании, но когда прописываю функцию, timedelta нет и ошибка, что у datetime нет атрибута timedelta
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.12.2015, 21:58
если импортируете timedelta как я писал выше (from datetime...), то, чтобы использовать её, datetime уже писать не нужно (если вы не импортируете весь datetime)

Добавлено через 36 секунд
т.е. вместе
summ = datetime.timedelta(0)
пишем
summ = timedelta(0)
1
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
22.12.2015, 22:00  [ТС]
Jabbson, Спасибо большое, заработало
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
23.12.2015, 05:26
Цитата Сообщение от temasey Посмотреть сообщение
Jabbson, Спасибо большое, заработало
а ведь могло и раньше заработать, нужно было хотя бы чуть чуть почитать мат. часть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.12.2015, 05:26
Помогаю со студенческими работами здесь

Сбор информации даты и времени входа/выхода из системы определенного пользователя (подсчет времени сколько каждый польз)
Добрый день! Пишу курсовую по сбору информации о компьютере. И столкнулся с двумя пунктами, которые вообще не представляю как сделать....

Подсчет времени в реальном времени
Добрый день, подскажи пожалуйста как нужно сделать что бы подсчитать количество часов. В первом поле вводится начало (к примеру начало...

Подсчет времени
Сижу думаю и не могу понять как реализовать подсчет времени, например, 1.40+2.30 != 3.70, а = 4.10 Добавлено через 55 минут Сам...

Подсчёт времени
Исключительно Принаддобрейшего Времени суток! Прошу простить моё невежество! Мне стыдно! Нужно сделать табличку из 3-х...

Подсчет времени
Необходимо сделать SQL запрос, который будет подсчитывать количество времени, которое: 1) было затрачено на маршрут без отдыха; 2) с...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru