Форум сайта python.su
from threading import Timer from datetime import datetime x=2 def timenows(): if x==1: now = datetime.now() # current date and time texttime = now.strftime("%H:%M:%S") timer = Timer(1, timenows) timer.start() print(texttime) return texttime else: if x==2: starttimeing = datetime.strptime('2017-05-04',"%Y-%m-%d") texttime = starttimeing.strftime("%H:%M:%S") timer = Timer(1, timenows) timer.start() print(texttime) return texttime timenows()
Отредактировано Genabox (Янв. 28, 2023 16:25:22)
Офлайн
должен начатся отсчет времения но этого не происходит
как получить время 00:00:00 и начать считать?
00:00:01
00:00:02
00:00:03
???
Офлайн
GenaboxТам же это и записано.
если x = 2 идет отсчет времения с нуля но почемуто лепит одни нули
>>> from datetime import datetime >>> >>> starttimeing = datetime.strptime('2017-05-04',"%Y-%m-%d") >>> texttime = starttimeing.strftime("%H:%M:%S") >>> texttime '00:00:00' >>> starttimeing datetime.datetime(2017, 5, 4, 0, 0) >>>
GenaboxТы понимаешь, что такое таймер? Почитай сначала, что это вообще.
должен начатся отсчет времения но этого не происходит
Офлайн
таймер работает
формат времени не считается…
сам формат неправильно записан, вот я и спрашиваю где здесь ошибка
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
Отредактировано Genabox (Янв. 28, 2023 20:56:05)
Офлайн
GenaboxТак я тебе и говорю, что ты с чего-то взял, что таймер должен тебе что-то начислять там. Просто ты не понимаешь, что это за механизм.
таймер работает
формат времени не считается…
сам формат неправильно записан, вот я и спрашиваю где здесь ошибка
GenaboxС чего ты взял, что там должно стать 00:00:01 ?
00:00:00
Отредактировано py.user.next (Янв. 28, 2023 21:04:31)
Офлайн
если написать x=1 то все работает но время отсчитываетс с локального времениа
а мен нужно с 0ля часов 0 минут , тоесть мне нужно устаночить 0 часов ночи и начать отсчет таймером
я ж с форматом даты работаю а не с тиком таймера
Отредактировано Genabox (Янв. 28, 2023 21:23:55)
Офлайн
GenaboxОно работает при x=1 потому, что в компьютере время меняется каждую секунду само по себе безо всякого питона.
если написать x=1 то все работает но время отсчитываетс с локального времениа
а мен нужно с 0ля часов 0 минут , тоесть мне нужно устаночить 0 часов ночи и начать отсчет таймером
я ж с форматом даты работаю а не с тиком таймера
GenaboxДля этого тебе нужно каждый раз устанавливать его в новом виде. Чтобы это сделать, сделай это сначала без таймера. Поменяй время без таймера, как в примере, который я приводил выше, а потом этот код вставишь в функцию, которая вызывается по таймеру.
мне нужно устаночить 0 часов ночи и начать отсчет таймером
Отредактировано py.user.next (Янв. 28, 2023 21:45:40)
Офлайн
нашел другой пример до добавил милисикунды
сделано с циклом
import time
def timenows(): while True: a = 0 b = 0 c = 0 d = 0 sec = 999 + 999*60 + 999*3600 + 999*216000 for i in range(sec): time.sleep(1) a += 1 #print('Прошло',a ,'Секунд',b,'минут', c, 'часов') print(c, 'часов', b,'минут',a ,'Секунд', d, 'мс') if a / 60 == 1: b += 1 a = 0 if b / 60 == 1: c += 1 b = 0 timenows()
Офлайн
import time def timenows(): while True: z = 0 a = 0 b = 0 c = 0 d = 0 sec = 999 + 999*60 + 999*3600 + 999*216000 for i in range(sec): time.sleep(0.01) a += 1 #print('Прошло',a ,'Секунд',b,'минут', c, 'часов') print(d, 'мс:', z, 'часов |', c, 'минут |', b,'секунд |',a ,'милисекунд' ) if a / 60 == 1: b += 1 a = 0 if b / 60 == 1: c += 1 b = 0 d += 1 if c / 60 == 1: d += 1 d += 1 timek = (d+ ' мс: '+ z + ' часов | '+ c +' минут |'+ b+' секунд |' + a + ' милисекунд' ) return timek timenows()
Отредактировано Genabox (Янв. 28, 2023 23:06:05)
Офлайн
354874 fms: 0 hr | 97 min | 32 sec | 58 ms
что то не то
Офлайн