Python中时间之间的计算小demo

Python中时间之间的计算小demo

可以根据自己的场景,进行相应的修改

import time
import datetime
import socket
import redis

r = redis.Redis(host='127.0.0.1', port=6379)

# 获取本机ip
def get_host_ip():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
        s.close()
        return ip
    except Exception as e:
        # 没有网络的时候是无法获取到的
        return '连接超时'

def func():
    # 调用获取ip函数
    ip = str(get_host_ip())
    # 先获取该ip是否存在redis中
    is_r = float(r.hget(ip, 'begin_time').decode('utf-8'))
    # 未存
    if not is_r:
        # 将ip作为redis中的key存进去
        r.hset(ip, 'begin_time', time.time())
        return
    # 已存
    else:
        # 一个时间转换str类型的字符串格式
        str_time = "%Y-%m-%d %H:%M:%S"
        # 设置时间,单位可以在下面的timedelta中可以控制
        limit_time = 10
        # 将redis中获取的begin_time转换成localtime格式-->将localtime格式转换成字符串格式-->
        # 将字符串转化成datetime类型时间格式
        begin_time = datetime.datetime.strptime(time.strftime(str_time, time.localtime(is_r)), str_time)
        # 将datetime类型的begin_time与设置的小时时限相加,得出截止答题时间-->并转换成字符串-->
        # 将字符串转换成time时间格式-->将time转换成浮点型
        end_time = time.mktime(
            time.strptime(str(begin_time + datetime.timedelta(days=int(limit_time))), str_time)
        )
        # 使用计算后的时限时间,与当前时间做计算
        surplus_time = int(end_time - time.time())
        # 返回结果
        return surplus_time

def func1():
    surplus_time = func()
    print(surplus_time)
    if surplus_time:
        print('继续答题')
    else:
        print('答卷未完成')

if __name__ == '__main__':
    func1()

欢迎留言,对代码进行优化

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tian丶Yuting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值