Софтуерно Инженерство
Loading...
martin_varbanov avatar martin_varbanov 1 Точки

[Python 3 July - Homework] Проблем с датите от голямата задача(Лекция 05),

Здравейте,

Имам няколко въпроса относно последната точка от задачата.

Пълното ми решение:

https://github.com/martin-varbanov96/summer-2016/blob/master/Pitonia/softuni/05/index.py

 

Условие на задачата:

http://python3.softuni.bg/student/lecture/56801633131b1642fba7379c/

 

Очаквания output e:

Сума на продажби по час (top 5)
-----------------------------
    2015-12-01 12:00:00+01:00: 9209.70 €
    2016-01-17 10:00:00+02:00: 8811.59 €
    2016-01-05 20:00:00+01:00: 8590.52 €
    2015-12-29 20:00:00+02:00: 8270.59 €
    2016-01-05 10:00:00+01:00: 8028.91 €

 

Моя output e:

        Сума на продажби по час (top 5)
-----------------------------

2015-12-01 11:00:00+00:00: 9209.70 €
2016-01-17 08:00:00+00:00: 8811.59 €
2016-01-05 19:00:00+00:00: 8590.52 €
2015-12-29 18:00:00+00:00: 8270.59 €
2016-01-05 09:00:00+00:00: 8028.91 €

 

Функцията, която извършва действията:

def price_by_time(sales):
    date_dict = dict()
    for sale in sales:
        current_date_utc = iso8601.parse_date(sale["date"]).astimezone(timezone.utc) # преобразуваме датата в UTC
        current_date_utc = current_date_utc.replace(minute=0, second=0, microsecond=0)   # зануляваме миутите, секундите и микросекундите
        if current_date_utc not in date_dict:
            date_dict[current_date_utc] = 0
        date_dict[current_date_utc] += sale["price"]
    sorted_dict = sorted(date_dict.items(), key=operator.itemgetter(1))
    print("""

    Сума на продажби по час (top 5)
-----------------------------
        """)
    for i in range(0, 5 ):
        print("{date}: {price:.2f} €".format(date=str(sorted_dict[-i-1][0]), price=sorted_dict[-i-1][1]))


 

Въпросът ми е: защо часовете играят с едно две отклонение, бихте ли предложили по добро решение и как можем да сравняваме дати с точност до часа

0
Python
netherblood avatar netherblood 94 Точки

Проблемът е, че ги преобразуваш в UTC, а това не е в условието на задачата.

0