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
shine_g avatar shine_g 2 Точки

Ползвай само

current_date = iso8601.parse_date(sale["date"])

вместо

current_date_utc = iso8601.parse_date(sale["date"]).astimezone(timezone.utc)

и би трябвало да излезе както искаш.

0
netherblood avatar netherblood 95 Точки

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

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.