效果图如下图:

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

计算出当前的班次,

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

最后用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()

python项目源码 日程管理_怎么用python写作息时间安排呢?相关推荐

  1. python项目源码 日程管理_基于fullcalendar制作的日程管理小demo

    一.项目地址: 二.项目功能概述: 该项目是基于fullcalendar而制作的日程管理,fullcalendar是一个基于jquery的日历插件,在该项目中,我们可以在日历上编辑我们的日程,并将日程 ...

  2. python项目源码 日程管理_[Python] Python日程处理

    日程处理 目标是输入个文本文件关于日程的,就能够到时间的时候显示出来,在ubuntu系统上运行. 包括以下几点: 1.了解Tkinter. 1.1 参考文献自己制作Python IDEL 1.1.1 ...

  3. python项目源码 日程管理软件_分享:一个开源的基于时间管理四象限的待办管理工具...

    在完成这篇文章里要分享的一个开源小工具 todolist 之前,在网上找了不少日程管理,待办管理的小工具:开源的.收费的.有广告.需要注册的那也是不少: 根据自己平时的工作习惯:以及对时间管理的学习理 ...

  4. python项目源码 日程管理_JS日程管理插件FullCalendar简单实例

    在线演示              源码下载 HTML 首先第一步就是在需要调用FullCalendar日程插件的页面中载入必要的javascript和css文件,包括jQuery库文件,FullCa ...

  5. python程序源码百行_百行python代码,轻松完成贪吃蛇小游戏

    引言 作为python 小白,总是觉得自己要做好百分之二百的准备,才能开始写程序.以至于常常整天在那看各种语法教程,学了几个月还是只会print('hello world'). 这样做效率太低,正确的 ...

  6. python内存管理和释放_《python解释器源码剖析》第17章--python的内存管理与垃圾回收...

    17.0 序 内存管理,对于python这样的动态语言是至关重要的一部分,它在很大程度上决定了python的执行效率,因为在python的运行中会创建和销毁大量的对象,这些都设计内存的管理.同理pyt ...

  7. python解释器源码 pdf_《python解释器源码剖析》第0章--python的架构与编译python

    本系列是以陈儒先生的<python源码剖析>为学习素材,所总结的笔记.不同的是陈儒先生的<python源码剖析>所剖析的是python2.5,本系列对应的是python3.7. ...

  8. python list存储对象_《python解释器源码剖析》第4章--python中的list对象

    4.0 序 python中的list对象,底层对应的则是PyListObject.如果你熟悉C++,那么会很容易和C++中的list联系起来.但实际上,这个C++中的list大相径庭,反而和STL中的 ...

  9. python项目源代码-python项目源码

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! pip install tencentcloud-sdk-python 注意:如 ...

  10. python飞机大战源码素材包_小甲鱼python基础教程飞机大战源码及素材

    原博文 2018-12-22 23:32 − 百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取 ...

最新文章

  1. php phppowerpoint 生成表格_php之EXCEL导出代码生成器的实现思路
  2. Rainbond v5.1.2发布,微服务架构应用便捷管理和交付
  3. 三种SQLServer分页查询语句笔记
  4. 基于java的程序启动出错Could not create the Java virtual machine
  5. 支付宝支付-刷卡支付(条码支付)
  6. docker mysql 阿里云_阿里云docker部署mysql
  7. 易语言学习笔记(一)
  8. 若不能细水长流地书写内心的温柔,那轰轰烈烈的一幕一幕不过是日后回忆自己爱无能的证据罢了。...
  9. 为何你的网络爬虫技术提升缓慢?甚至小白无从下手学习?
  10. 在Python中使用XGBoost和scikit-learn进行随机梯度增强
  11. 从Facebook更名Meta看元宇宙||亚太元宇宙新纪元峰会正式启动
  12. 现在世界上到底有多少飞机?
  13. 尚德机构退费难的问题
  14. 学习笔记三:衍生兄弟——过冲和振铃
  15. 本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”
  16. out of synch 不同步是什么意思?
  17. 使用函数求e的近似值 C语言 PTA
  18. 74138译码器详解
  19. 12306铁道部订票网站性能分析
  20. C#与松下PLC串口通讯发送,接收数据

热门文章

  1. ThinkPadnbsp;E40nbsp;硬盘异响…
  2. Gl计算机语言,计算机编程和编程语言 - osc_bkg5rgl1的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. 网页压缩--gzip和deflate的区别
  4. 利用反射等离激元超表面的模拟光计算
  5. layui结合zTree写树状图
  6. 25.HTTP协议和WEB服务器APACHE
  7. wps office应用计算机等级考试,全国计算机等级考试一级教程:计算机基础及WPS Office应用(2016年版)...
  8. MATLAB 脚本 编写 泰勒展开
  9. Windows下Zookeeper启动错误Invalid arguments, exiting abnormally
  10. 视频怎么加水印?这里有你想要的答案