0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用Python自动获取排班人员

汽车电子技术 来源:Python脚本 作者:IdlePig 2023-03-03 15:07 次阅读

总体思路是对比班次的开始时间和结束时间,

计算出当前的班次,

再根据班次得出当前的值班人员,

最后用while循环,实时刷新当前的值班人员,

当然也可以去个重,如果这个周期和上个周期的值班人员一样,不显示,如果不一样再显示出来也可以,更具有实用性

import time
from datetime import datetime

# 值班时间表,时间用字符串表示,看起来清晰一些
# 中班分层两个key,是为了下面对比时间方便
schedule_dict = {
    '早班': ['8:30', '16:30'],
    '中班-昨天': ["16:30", "00:00"],
    '中班-今天': ["00:00", "00:30"],
    '晚班': ["00:30", "8:30"]
}

# 值班人员表
attendants_dict = {
    '早班': '张三',
    '中班-昨天': '李四',
    '中班-今天': '李四',
    '晚班': '王五'
}

# 自动计算好当前时间的年、月、日
now_year = datetime.now().year
now_month = datetime.now().month
now_day = datetime.now().day


# 从 schedule_dict 中的字符串提取出数字的小时、分钟
def get_hour_minute(hour_minute_string):
    hour = int(str(hour_minute_string).split(':')[0])
    minute = int(str(hour_minute_string).split(':')[1])
    return hour, minute


def run():
    # 值班人员列表初始化
    on_call_list = []

    # 遍历值班时间的表
    for k, v in schedule_dict.items():

        # 把 schedule_dict中的字符串弄成数字的小时、分钟
        time_begin_str, time_end_str = v
        hour_begin, minute_begin = get_hour_minute(time_begin_str)
        hour_end, minute_end = get_hour_minute(time_end_str)

        # 值班开始的时间
        time_begin = datetime(year=now_year, month=now_month, day=now_day,
                            hour=hour_begin, minute=minute_begin)

        # 值班结束的时间
        time_end = datetime(year=now_year, month=now_month, day=now_day,
                            hour=hour_end, minute=minute_end)

        # 现在的时间
        time_now = datetime.now()

        # 三个班次,会循环3次,对比现在的时间在哪个班次
        if time_begin <= time_now <= time_end:
            print('现在班次是:', k)
            on_call_person = attendants_dict.get(k)
            print('值班人员是:', on_call_person)
            on_call_list.append(on_call_person)

    no_on_call_list = list(set(attendants_dict.values()) - set(on_call_list))
    print('休息的人分别是:', '、'.join(no_on_call_list))
    print('-------------------------------------------------------------------')


def main():
    while 1:
        run()
        # 这里可以30分钟刷一次,改成1800就行,
        # 这样就能实时获取当前值班的人,休息的人
        time.sleep(10)


if __name__ == '__main__':
    main()
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算
    +关注

    关注

    2

    文章

    444

    浏览量

    38726
  • 循环
    +关注

    关注

    0

    文章

    92

    浏览量

    15954
收藏 人收藏

    评论

    相关推荐

    为何运维人员要学Python

    ,当你做出一套运维自动化系统的时候,你的价值将得到显现,那么运维人员如何学好Python呢?今天只谈学习方法,不谈知识。1、学习编程不止是学习语法,需要学习算法(计算思维、解决问题的方法、编程思路
    发表于 02-02 18:55

    使用Python爬虫实现百度图片自动下载的方法

    何用Python爬虫实现百度图片自动下载?
    发表于 05-23 14:55

    请问如何用Python来写单片机?

    请问如何用Python来写单片机?
    发表于 06-15 09:29

    python脚本如何根据公网IP自动获取地址和天气信息?

    python脚本如何根据公网IP自动获取地址和天气信息?
    发表于 12-28 07:14

    什么是磁力链接?如何用Python获取磁力种子?

    通过磁力就可以获取种子文件从而进行下载,这跟直接使用种子下载时一个道理的,只是少了从磁力到种子文件的一个过程而已。
    的头像 发表于 08-05 09:08 2.2w次阅读

    何用python爬取抖音app数据

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例。
    的头像 发表于 03-16 09:07 5260次阅读

    何用Python计算提高机器学习算法和结果

    本文将简要介绍常用的距离度量方法、它们的工作原理、如何用Python计算它们以及何时使用它们。这样可以加深知识和理解,提高机器学习算法和结果。
    发表于 10-31 10:58 608次阅读

    使用Python和PHP获取天气信息

    电子发烧友网站提供《使用Python和PHP获取天气信息.zip》资料免费下载
    发表于 01-04 11:03 1次下载
    使用<b class='flag-5'>Python</b>和PHP<b class='flag-5'>获取</b>天气信息

    Python怎么玩转JS脚本

    本项目旨在让大家了解如何用Python来执行JS脚本,其主要目的是在进行数据 分析时,需要利用爬虫获取数据,有时会遇到JS混淆加密反爬取难点,此时我们需 要获取网页JS加密代码将其
    的头像 发表于 02-23 16:26 1067次阅读
    <b class='flag-5'>Python</b>怎么玩转JS脚本

    Python怎么批量生成PDF文档

    这种模板套用的场景下,使用Python进行自动化就尤为方便,用最短的时间办最高效的事。 今天就给大家讲讲如何用Python自动套用模板
    的头像 发表于 02-28 10:11 1090次阅读
    <b class='flag-5'>Python</b>怎么批量生成PDF文档

    python有什么用 如何用python创建数据库

    python有什么用 如何用python创建数据库 Python是一种高级编程语言,可以用于开发各种类型的应用程序和工具。它的广泛应用使它在编程领域中极为受欢迎。
    的头像 发表于 08-28 16:41 1141次阅读

    何用Python自动套用模板批量生成PDF文档

    今天就给大家讲讲如何用Python自动套用模板批量生成的PDF文档。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章: 超详细
    的头像 发表于 10-17 10:54 934次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b><b class='flag-5'>自动</b>套用模板批量生成PDF文档

    yfinance:获取数据的Python第三方模块

    yfinance 是一个使用 Yahoo! 获取数据的 Python 第三方模块。它支持获取最细到1分钟级的历史数据及股票基本面数据,是免费获得美股分钟级及以上粒度数据的不二之选。 1.准备 开始
    的头像 发表于 10-21 14:32 2501次阅读

    何用Python来实现文件系统的操作功能

    就来介绍一下如何用 Python 来实现这些功能 输出当前的路径 我们可以通过 Python 当中的 OS 库来获取当前文件所在的位置 import os os .getcwd() 路
    的头像 发表于 10-30 14:27 379次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b>来实现文件系统的操作功能

    何用Python自动套用模板批量生成PDF文档

    办最高效的事。 今天就给大家讲讲如何用Python自动套用模板批量生成下方这样的PDF文档。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这
    的头像 发表于 10-31 10:56 1477次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b><b class='flag-5'>自动</b>套用模板批量生成PDF文档