当前位置: 首页 > 知识库问答 >
问题:

如何在 Python 3 中计算时间?

卞坚成
2023-03-14

我想要一个代码,显示某人在语音频道中的完整时间,但我不知道如何启动和停止计数器。

@bot.event
async def on_voice_state_update(before, after):

    if after.voice.voice_channel:
        timestrr = time.strftime("%d.%m.%Y-%H:%M:%S")
        voicezeit(after.id, timestrr)
#here should a timer start
    else:
         #and here should the timer stop

共有2个答案

陈俊誉
2023-03-14
匿名用户

你为什么需要一个柜台?开始时,只需将< code>start_time变量初始化为< code>None,然后在if块中检查它是否已设置,如果没有,则将其设置为< code>time.time()。在else块中,再次将< code>end_time设置为< code>time.time()并计算差值。

编辑

我不知道应用程序其余部分的布局,您必须在此更新函数之外的某个地方初始化start_time=无。您需要为每个用户设置它,我假设它存储为user.start_time,但同样,这取决于您应用程序的结构。那么您的函数可能会变成这样:

    @bot.event
    async def on_voice_state_update(before, after):

        if after.voice.voice_channel:
            if not user.start_time:  # this was set to None somewhere else
                user.start_time = time.time()
            # import datetime from datetime at the top of your file
            timestrr = datetime.from_timestamp(user.start_time).strftime("%d.%m.%Y-%H:%M:%S")
            voicezeit(after.id, timestrr)
        else:
             end_time = time.time()
             voice_chat_time = end_time - after.user.start_time

蒋文光
2023-03-14

如果您只想测量两点之间经过的挂钟时间,您可以使用time.time():

import time

start = time.time()
print("hello")
end = time.time()
print(end - start)

这给出了以秒为单位的执行时间。

自3.3以来的另一个选项可能是使用perf_counterprocess_time,具体取决于您的要求。在3.3之前,建议使用time.clock。但是,目前已弃用:

在Unix上,将当前处理器时间返回为以秒表示的浮点数。精度,实际上是“处理器时间”含义的定义,取决于同名C函数的精度。

在Windows上,此函数以浮点数形式返回自第一次调用此函数以来经过的挂钟秒数,基于Win32函数QueryPer

自版本 3.3 起已弃用:此函数的行为取决于平台:根据您的要求,改用 perf_counter() 或 process_time() 来定义明确的行为。

 类似资料:
  • 问题内容: 我想从19:00:00中减去两个时间段,例如16:00:00。是否有任何Java函数?结果可以是毫秒,秒或分钟。 问题答案: 差异以毫秒为单位。

  • 谁能帮我为我的测试用例设置吗?我正在本地机器上运行测试。 我想检查服务器在5分钟内可以处理多少用户。我们的预期是。

  • 问题内容: 如何在python中计算程序运行时间? 问题答案: 您可能需要看一下该模块: http://docs.python.org/library/timeit.html 或模块: http://docs.python.org/library/profile.html 这里还有一些不错的教程: http://www.doughellmann.com/PyMOTW/profile/index.h

  • 在Ruby on Rails中,有一个特性允许您使用任何日期并打印出它是多么“久远”。 例如: 在Java有什么简单的方法可以做到这一点吗?

  • 问题内容: k跳过图是一个ngram,它是所有ngram和每个(ki)跳过图直到(ki)== 0(包括0个跳过克)的超集。那么,如何在python中有效地计算这些skipgram? 以下是我尝试过的代码,但未达到预期的效果: 上面的代码无法正确渲染,但是打印后输出如下 [[‘this’,’happened’,’more’],[‘happened’,’more’,’or’],[‘more’,’or’

  • 问题内容: 如果用户输入为2255,而我的输出应为10分钟,那么我如何计算24小时内的时差。我的想法是将输入分为2个部分,2位数字和2位数字。前2位数字是小时,将其乘以60使其变为分钟。然后再加上第二个2位数字,然后计算出差异。我不想使用任何日期日历数据类型或API来解决它。谢谢 问题答案: 如何在不使用String chartAt的情况下获取前两位数字。 最高两位数:数字/ 100最低两位数:数