python中时间函数及其应用
近段时间,因在改写以前写的学校自动铃声控制系统,又学到了一些新的知识,特记录如下:
一、时间函数基础
1、time模块中的函数及其用法
-
time.time()
: 返回当前时间的时间戳,即自1970年1月1日以来的秒数。 -
time.localtime()
: 返回本地时间的结构化表示。如time.struct_time(tm_year=2024, tm_mon=10, tm_mday=6, tm_hour=20, tm_min=12, tm_sec=1, tm_wday=6, tm_yday=280, tm_isdst=0) -
time.gmtime()
: 返回UTC时间的结构化表示。如time.struct_time(tm_year=2024, tm_mon=10, tm_mday=6, tm_hour=12, tm_min=12, tm_sec=1, tm_wday=6, tm_yday=280, tm_isdst=0) -
time.sleep(seconds)
: 使程序暂停指定的秒数。 -
time.strftime('%Y-%m-%d %H:%M:%S'
, t)
: 将结构化时间对象转换为指定格式的字符串。 time.strptime(string,'%Y-%m-%d %H:%M:%S'
)
: 将字符串转换为结构化时间对象。
2、datetime模块中的函数及其用法
datetime.datetime()
: 创建日期时间对象。datetime.now()
: 获取当前日期和时间。datetime.fromtimestamp(timestamp)
: 将时间戳转换为日期时间对象。datetime.timedelta()
: 表示两个日期或时间之间的差异。
二、时间函数的应用
3、将用字符串形式表示的日期时间格式化
from datetime import datetime,date,time
import time
from chinese_calendar import is_workday, is_holiday, is_in_lieudat = '2021-9-11'
tim = '9:11:30'
str_time = dat + ' ' + tim # 用空格分隔日期与时间
t_strp = datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S') # 字符格式解析为日期时间
print('当前时间t_strp为', t_strp, type(t_strp))
结果为:当前时间t_strp为 2021-09-11 09:11:30 <class 'datetime.datetime'>
4、时间对象转换为指定格式的字符串
from datetime import datetime,date,time
import time
from chinese_calendar import is_workday, is_holiday, is_in_lieut_strf = time.strftime('%Y-%m-%d %H:%M:%S %A', time.localtime()) # 格式化输出
print('本地时间localtime为:',time.localtime())
print('本地时间t_strf为', t_strftime, type(t_strftime))
运行结果为:本地时间localtime为:time.struct_time(tm_year=2024, tm_mon=10, tm_mday=6, tm_hour=20, tm_min=31, tm_sec=20, tm_wday=6, tm_yday=280, tm_isdst=0)
本地时间为t_strf为 2024-10-06 20:31:20 Sunday <class 'str'>
5、合并日期时间
我们从指令电子表格中分别提取各指令时间,日期则用当前日期,合并成日期时间,再转变成时间戳,就可以和当前时间求时间差,从而判断指令是否该运行了。
需要注意的是,电子表格提取的时间已经是时间格式。
import openpyxl
import re
import colorama # 打包后彩色字显示用
from datetime import datetime, date, time,timedelta
from chinese_calendar import is_workday, is_holiday # 自动判断中国假期
import time
import oswb = openpyxl.load_workbook('自动打铃指令.xlsx',data_only=True) # 打开指令文件,如有公式只读数据
sheet = wb['Sheet1']
tim = sheet['B' + str(i)].value # 提取指令时间,已是datetime数据类型
time2 = datetime.combine(date_today, time1) # 合并日期时间,已是datetime数据类型t0 = time.time()
t1 = time2.timestamp()
differtime = (t1 - t0) # 时间差(秒)
6、自动判断中国工作日和假日
对于学校上课铃声控制,还要考虑周末响铃扰民问题,起先考虑平常周从星期列表中判断周六周日不响铃,国家节假日调休时再重新生成一个新的列表,很是复杂。
不经意间,发现有第三方插件chinese_calendar,能自动判断中国节假日,太好了。
import openpyxl
import re
import colorama # 打包后彩色字显示用
from datetime import datetime, date, time,timedelta
from chinese_calendar import is_workday, is_holiday # 自动判断中国假期
import time
import oswhile True:date_today = date.today() # 重新读取当前时间week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]weekday = date_today.weekday()week = week_list[weekday]# print('星期:', week_list[weekday])print(f'今天是{date_today},{week}')work_day = is_workday(date_today) # 能自動判斷中國工作日holi_day = is_holiday(date_today) # 能自動判斷中國節假日# print('工作日', is_workday(date_today))if work_day == True: # 工作日print('是国家规定的工作日。')ins() # 导入指令包run() # 运行主程序else:date_today = date.today()
极域电子教室座位表程序下载链接:链接:https://pan.baidu.com/s/1X0WUTtXmr1EhFg9CNgoIKA?pwd=odvs
提取码:odvs
考试指令系统下载链接:https://pan.baidu.com/s/11x9fS1gUEPCd6w15KHCxSw?pwd=zvw3
提取码:zvw3
照片插入电子表格程序链接:https://pan.baidu.com/s/1dvW5q9G53prkUDVcO6uffA?pwd=w3jp
提取码:w3jp
相关文章:
python中时间函数及其应用
近段时间,因在改写以前写的学校自动铃声控制系统,又学到了一些新的知识,特记录如下: 一、时间函数基础 1、time模块中的函数及其用法 time.time(): 返回当前时间的时间戳,即自1970年1月1日以来的秒数。 time.localt…...
MoveIt2-humble】入门教程----第一个 C++ MoveIt 程序
四节教程会手把手带你写一个完整的 Moveit 控制程序,包括轨迹规划、RViz可视化、添加碰撞物体、抓取和放置。 1 创建依赖包 进入到教程所在工作空间下的src目录,创建一个新的依赖包。 ros2 pkg create \--build-type ament_cmake \--dependencies mov…...

watch命令:周期执行指定命令
一、命令简介 watch 命令用于周期性地执行指定的命令,并显示其输出结果。 二、命令参数 2.1 命令格式 watch [选项] 命令2.2 选项 -n, --interval: 指定更新间隔时间(以秒为单位)。默认间隔时间为 2 秒。-d, --difference…...

【ADC】噪声(1)噪声分类
概述 本文学习于TI 高精度实验室课程,总结 ADC 的噪声分类,并简要介绍量化噪声和热噪声。 文章目录 概述一、ADC 中的噪声类型二、量化噪声三、热噪声四、量化噪声与热噪声对比 一、ADC 中的噪声类型 ADC 固有噪声由两部分组成:第一部分是量…...

网络安全概述:从认知到实践
一、定义 网络安全,即致力于保护网络系统所涵盖的硬件、软件以及各类数据,切实保障其免遭破坏、泄露或者篡改等不良情形的发生。 二、重要性 个人层面:着重于守护个人隐私以及财产安全,为个人在网络世界中的各项活动提供坚实的保…...
Vue.js组件开发研究
摘要 随着前端技术的快速发展,Vue.js以其轻量级、高性能和组件化开发的优势,在前端开发领域占据了重要地位。本研究深入探讨了Vue.js组件开发的理论基础、开发方法以及实际应用。通过系统梳理Vue.js框架的核心特性、组件化思想及Vue.js组件的基本概念&am…...

OpenHarmony(鸿蒙南向开发)——轻量系统芯片移植案例(一)
往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 轻量带屏解决方案之恒玄芯片移植案例 本文章基于恒玄科技BES2600W…...

【Llamaindex RAG实践】
基础任务 (完成此任务即完成闯关) 任务要求:基于 LlamaIndex 构建自己的 RAG 知识库,寻找一个问题 A 在使用 LlamaIndex 之前InternLM2-Chat-1.8B模型不会回答,借助 LlamaIndex 后 InternLM2-Chat-1.8B 模型具备回答 A 的能力,截…...

[Linux]:线程(三)
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. POSIX 信号量 1.1 信号量的概念 为了解决多执行流访问临界区,…...

云原生(四十一) | 阿里云ECS服务器介绍
文章目录 阿里云ECS服务器介绍 一、云计算概述 二、什么是公有云 三、公有云优缺点 1、优点 2、缺点 四、公有云品牌 五、市场占有率 六、阿里云ECS概述 七、阿里云ECS特点 阿里云ECS服务器介绍 一、云计算概述 云计算是一种按使用量付费的模式,这种模式…...

qemu-system-aarch64开启user用户模式网络连接
一、问题 在使用qemu构建arm64的虚拟机时,虚拟机没有网络,桥接方式相对麻烦,我只是需要联网更新即可。与宿主机的通信我使用共享文件夹即可满足要求。 使用指令启动虚拟机时,网络部分的参数为 -net user,hostfwdtcp::10022-:22 …...

Android车载——VehicleHal初始化(Android 11)
1 概述 VehicleHal是AOSP中车辆服务相关的hal层服务。它主要定义了与汽车硬件交互的标准化接口和属性管理,是一个独立的进程。 2 进程启动 VehicleHal相关代码在源码树中的hardware/interfaces/automotive目录下 首先看下Android.bp文件: cc_binary …...

CTFshow 命令执行 web37-web40
目录 web37 方法一:php://input 方法二:data协议 web38 web39 web40 方法一:构造文件读取 方法二:构造数组rce web37 error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag/i", $c)){incl…...
数据结构与算法篇((原/反/补)码 进制)
目录 讲解一:原/反/补)码 一、原码 二、反码 三、补码 四、有符号位整型 五、无符号位整型 六、Java中的整型 七、整数在底层存储形式 讲解二:进制 一、简介 二、常用的进制 十进制 二进制 八进制 十六进制 知识补充 三、进制转换 1. 二…...

Python画笔案例-077 绘制 颜色饱和度测试
1、绘制 颜色饱和度测试 通过 python 的turtle 库绘制 颜色饱和度测试,如下图: 2、实现代码 绘制 颜色饱和度测试,以下为实现代码: """饱和度渐变示例,本程序需要coloradd模块支持,请在cmd窗口,即命令提示符下输入pip install coloradd进行安装。本程序演…...
简历投递经验01
嵌入式简历制作指南与秋招求职建议 技术要求概览 在嵌入式领域求职时,技术能力是HR和面试官最关注的点之一。以下是一些关键技术点,以及它们在简历中的体现方式。 1. 编程语言与开发环境 掌握C/C语言。熟悉至少一种单片机或微处理器的开发环境。 2.…...
数据和算力共享
数据和算力共享 针对数字化应用实践中需要在不同的物理域和信息域中进行数据的访问交换以及共享计算等需求,本文分析了在数据平台、数据集成系统以及信息交换系统中存在的问题。 在基于联邦学习的基础上,提出一种跨域数据计算共享系统,能够同时共享数据和计算资源,并支持在线…...

SpringBoot 集成 Ehcache 实现本地缓存
目录 1、Ehcache 简介2、Ehcache 集群方式3、工作原理3.1、缓存写入3.2、缓存查找3.3、缓存过期和驱逐3.4、缓存持久化 4、入门案例 —— Ehcache 2.x 版本4.1、单独使用 Ehcache4.1.1、引入依赖4.1.2、配置 Ehcache4.1.2.1、XML 配置方式4.1.2.1.1、新建 ehcache.xml4.1.2.1.2…...
CSP-J 复赛真题 P9749 [CSP-J 2023] 公路
文章目录 前言[CSP-J 2023] 公路题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 示例代码代码解析思考过程总结 总结 前言 在CSP-J 2023的复赛中,出现了一道引人注目的题目——“公路”。这道题目不仅考察了选手们对算法的理解和运用能力,…...
MeterSphere压测配置说明
在MeterSphere中,执行性能测试时的配置参数对测试结果有重要影响。以下是对MeterSphere压测配置中几个关键参数的解释: 执行方式:决定了测试的执行模式,例如可以按照持续时间或迭代次数来执行测试。 按持续时间:在这种…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

MeshGPT 笔记
[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...
2025.6.9总结(利与弊)
凡事都有两面性。在大厂上班也不例外。今天找开发定位问题,从一个接口人不断溯源到另一个 接口人。有时候,不知道是谁的责任填。将工作内容分的很细,每个人负责其中的一小块。我清楚的意识到,自己就是个可以随时替换的螺丝钉&…...