• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem kod aplikacja Flask

Object Storage Arubacloud
0 głosów
57 wizyt
pytanie zadane 10 lutego w Python przez piotr_domanski Bywalec (2,080 p.)

Witam,

mam następujący problem.

Tutaj mam tablice dzwonków przerw:

dzwonki = [
        {"start": "07:30", "end": "08:00"},
        {"start": "08:45", "end": "08:50"},
        {"start": "09:35", "end": "09:40"},
        {"start": "10:25", "end": "10:30"},
        {"start": "11:15", "end": "11:35"},
        {"start": "12:20", "end": "12:40"},
        {"start": "13:25", "end": "13:30"},
        {"start": "14:15", "end": "14:20"},
        {"start": "15:05", "end": "15:10"},
        {"start": "15:55", "end": "16:00"},
        {"start": "16:45", "end": "16:50"}
    ]

I chce żeby ta funkcja check_przerwa() poprawnie zwracała numer aktualnie trwającego przedziału czasowego:

@app.route('/przerwa', methods=['GET'])
def check_przerwa():
    current_time = datetime.now().time()
    print("Aktualny czas:", current_time)

    for idx, dzwonek in enumerate(dzwonki):
        start_time = datetime.strptime(dzwonek["start"], "%H:%M").time()
        end_time = datetime.strptime(dzwonek["end"], "%H:%M").time()
        print(f"Przerwa {idx+1}: {start_time} - {end_time}")

        if start_time <= current_time <= end_time:
            return jsonify({"numer_indeksu": idx})

    return jsonify({"numer_indeksu": None})

Aktualnie nie robi tego poprawnie i nie wiem w czym jest problem , czas na serwerze jest poprawnie pobierany i jak mam np: przedział po edycji z poziomu aplikacji (jest taka możliwość) {"start": "09:35", "end": "10:00"}, i jest godzina 09:47 na serwerze to pisze mi że nie trwa żadna przerwa.

Nie wiem w czym jest problem.

Pozdrawiam 

Piotr Domański

komentarz 10 lutego przez adrian17 Ekspert (344,860 p.)
Pokażesz co to logowanie wypluwa? Odpaliłem to u siebie lokalnie i wydaje się działać.
komentarz 10 lutego przez piotr_domanski Bywalec (2,080 p.)

jak serwer ma aktualną godzine załóżmy teraz pokazuje:

Aktualna data i godzina z serwera: 2024-02-10 12:32:20

i serwer zwraca Aktualnie trwa przerwa o numerze: 4

a przerwa 4 trwa 

4 10:25 10:30

więc pokazuje źle, chodzi o porównywanie przedziałów czasowych

komentarz 10 lutego przez adrian17 Ekspert (344,860 p.)

To znaczy - tam masz więcej logowania, z

        print(f"Przerwa {idx+1}: {start_time} - {end_time}")

pokażesz całość? (możesz jeszcze dodać printa samego obiektu `dzwonek`)

Gdybym miał strzelać to to brzmi jak coś ze strefami czasowymi, ale trudno jeszcze powiedzieć.

komentarz 10 lutego przez piotr_domanski Bywalec (2,080 p.)

o właśnie strefy czasowe, jest źle

Można zrobić tak na Warszawe  

# Ustawienie strefy czasowej na twoją lokalną strefę czasową
    local_tz = pytz.timezone('Europe/Warsaw')  # Tutaj wpisz nazwę swojej strefy czasowej

    # Pobranie bieżącego czasu w twojej lokalnej strefie czasowej
    current_time = datetime.now(local_tz)

    # Formatowanie daty i godziny
    data = current_time.strftime("%Y-%m-%d")
    godzina = current_time.strftime("%H:%M:%S")

 

komentarz 10 lutego przez piotr_domanski Bywalec (2,080 p.)
chyba naprawiłem

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 218 wizyt
pytanie zadane 9 lipca 2021 w Python przez Hellmick Początkujący (270 p.)
0 głosów
1 odpowiedź 265 wizyt
pytanie zadane 18 sierpnia 2022 w Python przez Podlasianin Początkujący (400 p.)
0 głosów
1 odpowiedź 146 wizyt
pytanie zadane 27 października 2020 w Python przez antypop Mądrala (5,730 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...