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

Problem kod aplikacja Flask

VPS Starter Arubacloud
0 głosów
135 wizyt
pytanie zadane 10 lutego w Python przez piotr_domanski Bywalec (2,140 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 (349,960 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,140 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 (349,960 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,140 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,140 p.)
chyba naprawiłem

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

Podobne pytania

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

93,025 zapytań

141,990 odpowiedzi

321,292 komentarzy

62,371 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...