python klok en elke 5 minuten een update?

Status
Niet open voor verdere reacties.

Holidaybuggy

Gebruiker
Lid geworden
6 jun 2005
Berichten
42
Goedenavond,

Ik ben bezig om een digitaal klokje te maken die elke 5 minuten de laatste nieuws items ophaalt.
Maar ik loop klem met de 5 minuten. (Een wait is niet echt een optie omdat de klok dan niet doorloopt)

Heeft iemand enig idee of ik nu op de goede weg zit of zijn er andere mogelijkheden?

(Als er nu 5 minuten voorbij zijn dan blijft de 'update_nieuws()' def hangen / herhalen.)

Alvast bedankt voor het meedenken:

Python code:
Code:
import pygame, time
from datetime import datetime
global starttime, endtime

starttime = time.time()
endtime = starttime +300

BLUE = (0, 0, 255)


def klok_datum():
    global klok
    now = datetime.now()
    starttime = time.time()
    klok = now.strftime("%H:%M:%S")

    if endtime < starttime:
        update_nieuws()



def update_nieuws():
    endtime+=10
    print("nieuwe nieuwsitems ophalen")
    #quit()


def kader():
    font = pygame.font.SysFont("comicsansms", 50)
    screen = pygame.display.set_mode((480,320))
    screen.fill((255, 255, 255))

    #show time in kader
    pygame.draw.rect(screen, BLUE, (120, 115, 225, 50))

    klok_datum()
    textklok = font.render(klok, True, (255, 0, 0))
    screen.blit(textklok, (340 - textklok.get_width(), 175 - textklok.get_height()))
    pygame.display.flip()
    clock = pygame.time.Clock()

pygame.init()

done = False
while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
    kader()
 
Ik zou van dit een methode maken:
Code:
starttime = time.time()
endtime = starttime +300

vervolgens zou ik bij def klok_datum(): op het einde van de methode verwijzen naar bovenstaande. Dan worden de waarden weer opnieuw aan starttime en endtime meegegeven en begin je weer vooraan.

Heb deze oplossing zelf nog niet kunnen testen, maar je kunt het even proberen.
 
Bedankt! Hieronder de verkorte versie met een oplossing
Deze vraagt het voor de test om de 5 seconde op..


Python code:

Code:
import time
from datetime import datetime
t=time.time()

def klok_datum():
    now = datetime.now()
    klok = now.strftime("%H:%M:%S")
    print (klok)

def update_nieuws():
    print ("Nieuwsitems ophalen")


while True:
    if time.time()-t>5:
        update_nieuws()
        t=time.time()
    klok_datum()
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan