python常用内置时间函数+蓝桥杯时间真题

1.time

1.1 time.time()

时间戳指:1970年1月1日开始到现在所经过的秒数

import time
print(time.time())
# 输出可得1970年1月1日开始到执行此代码所经过的秒数

1.2 time.localtime()

返回一个当前时间的时间对象,具体信息,并且可以单独拿到属性

# 在2025-03-26 12:38:10 执行此代码,当日周三import time
print(time.localtime())#输出:
# time.struct_time(tm_year=2025, tm_mon=3, tm_mday=26, tm_hour=12, tm_min=38, tm_sec=10, tm_wday=2, tm_yday=85, tm_isdst=0)# tm_year 代表当前年份
# tm_mon 代表当前月份
# tm_mday 代表当前日期
# tm_hour 代表当前小时
# tm_min 代表当前分钟
# tm_sec 代表当前秒数
# tm_wday=4, 代表当前的星期(范围0-6)
# tm_yday=250, 代表今年的第几天
# 单独拿出属性
# 例如单独拿出年份,月份
import time
print(time.localtime().tm_year) # 2025
print(time.localtime().tm_mon)  # 3

 1.3 time.sleep(s)

功能:让程序休眠s秒,休眠后程序继续执行

import time
n=0
while True:time.sleep(2)print("每个两秒输出一次")n+=1if n==3:break

2. datetime

2.1 datetime.date

表示日期的类,属性有 year,month,day

将年月日转化为时间对象,并可进行计算年月之间的时间差

from datetime import date
t1=date(2020,2,5)
print(t1)
t2=date(2021,2,5)
print(t2)
print(t2-t1)# 2020-02-05
# 2021-02-05
# 366 days, 0:00:00
# 输出当前时间的年月日
from datetime import date
d1 = date.today()
print(d1)# 2025年3月26日执行
# 输出:2025-03-26

2.2 datetime.datetime

表示日期时间,属性有 year,month,day,hour,minute,second,microsecond

from datetime import datetime
t=datetime.today()
print(t) #当前日期 年月日时分秒print(f'北京时间:{t.replace(microsecond=0)}')
# microsecond=0 使微秒为0

 datetime()中单独输出其中的属性,例如:

from datetime import datetime,timedelta
t=datetime.today()
print(t.year)   # 只输出年份
print(t.minute) # 只输出分钟
print(t.second) # 只输出秒数

2.3 datetime.strptime()

作用:将字符串类型转化为时间类型,以便进行后续运算

t = "2024-08-09 20:00:00"
m=datetime.strptime(t,'%Y-%m-%d %H:%M:%S')
print(m,type(m))#2024-08-09 20:00:00 <class 'datetime.datetime'>

2.4 datetime.fromisoformat()   (常用)

作用:与datetime.strptime()相同,将字符串类型转化为时间类型,输入简便(常用)

t='1970-01-01 00:00:00'
a=datetime.fromisoformat(t)
print(a,type(a))# 1970-01-01 00:00:00 <class 'datetime.datetime'>

2.5 timedelta()  (常用)

表示时间间隔,即2个时间点之间的长度,可用于时间计算

timedelta()的属性:

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

时间换算单位:
1秒 = 10分秒;1分秒 = 10厘秒;1厘秒 = 10 毫秒 ;1 毫秒 = 1000微秒;1微秒 = 1000纳秒;1纳秒 = 1000皮秒

d2 = datetime.today()
d3 = timedelta(days=3,minutes=30)print(f"当前年月日时分秒:{d2}")   #2024-12-26 21:28:15.970591
print(f"计算后的时间:{d2+d3}")    #2024-12-29 21:58:15.970591
# 求从1970-01-01 00:00:00开始,经过10000分钟是什么时间?t='1970-01-01 00:00:00'
start=datetime.fromisoformat(t)
now=start+timedelta(minutes=10000)
print(now)# 1970-01-07 22:40:00
# 求从1970-01-01 00:00:00开始,经过123456789秒是什么时间?t='1970-01-01 00:00:00'
start=datetime.fromisoformat(t)
now=start+timedelta(seconds=123456789)
print(now)# 1973-11-29 21:33:09

 3.2021 蓝桥杯真题--时间显示

 思路:只需要将毫秒整除1000转换为秒数,添加到初始时间上,并取出其时分秒补为两位即可

from datetime import datetime,timedelta
t1=int(input())
second=t1//1000
t2=datetime.fromisoformat("1970-01-01 00:00:00")
ans=t2+timedelta(seconds=second)
print('%02d:%02d:%02d'%(ans.hour,ans.minute,ans.second))

4.2024蓝桥杯真题--神奇闹钟

解题思路

  1. 利用datetime.fromisoformat() 将起始两个时间都转化为时间对象
  2. 两个时间相减求出其间隔总秒数,整除60得出间隔总分钟数
  3. 间隔总分钟数 对 闹铃时间间隔求余,间隔总分钟数减去余数,得到起始时间与答案时间的间隔分钟数
  4. 利用timedelta()将 起始时间+起始时间与答案时间的间隔分钟数=目标结果
from datetime import datetime,timedelta
t2='1970-01-01 00:00:00'
a=datetime.fromisoformat(t2)n=int(input())
for i in range(n):year,day,step=input().split()b=datetime.fromisoformat(year+" "+day)minute=int((b-a).total_seconds())//60yu=minute%int(step)minute-=yuans=a+timedelta(minutes=minute)print(ans)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/73839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个用 C 语言打印出所有三位数水仙花数的程序

水仙花数&#xff08;Narcissistic number&#xff09;是指一个三位数&#xff0c;其各位数字的立方和等于该数本身。例如&#xff1a;153 是一个水仙花数&#xff0c;因为 (1^3 5^3 3^3 153)。 以下是一个用 C 语言打印出所有三位数水仙花数的程序&#xff1a; 代码实现 …

利用 VSCode 配置提升 vibe coding 开发效率

利用 VSCode 配置提升 vibe coding 开发效率 Vibe Coding&#xff08;氛围编程&#xff09;是一种基于AI的编程方法&#xff0c;其核心在于通过自然语言描述软件需求&#xff0c;再由大规模语言模型&#xff08;LLM&#xff09;自动生成代码&#xff0c;从而实现对传统手写编程…

练习题:110

目录 Python题目 题目 题目分析 需求理解 关键知识点 实现思路分析 代码实现 代码解释 函数定义&#xff1a; 计算值的总和&#xff1a; 测试函数&#xff1a; 运行思路 结束语 Python题目 题目 定义一个函数&#xff0c;接受一个字典作为参数&#xff0c;返回字…

处理 Linux 信号:进程控制与异常管理的核心

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; 在 Linux 操作系统中&#xff0c;信号是用于进程间通信的一种机制&#xff0c;能够向进程发送通知&#xff0c;指示某些事件的发生。信号通常由操作系统内核、硬件中断或其他进程发送。接收和处理信号是 Li…

通信协议之串口

文章目录 简介电平标准串口参数及时序USART与UART过程引脚配置 简介 点对点&#xff0c;只能两设备通信只需单向的数据传输时&#xff0c;可以只接一根通信线当电平标准不一致时&#xff0c;需要加电平转换芯片&#xff08;一般从控制器出来的是信号是TTL电平&#xff09;地位…

Unity编辑器功能及拓展(1) —特殊的Editor文件夹

Unity中的Editor文件夹是一个具有特殊用途的目录&#xff0c;主要用于存放与编辑器扩展功能相关的脚本和资源。 一.纠缠不清的UnityEditor 我们Unity中进行游戏构建时&#xff0c;我们经常遇到关于UnityEditor相关命名空间丢失的报错&#xff0c;这时候&#xff0c;只得将报错…

工具类-csv文件导入数据库思路

首先&#xff0c;让我们来看下数据库建表语句&#xff1a; CREATE TABLE behavior_reports (id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 报告ID,report_type VARCHAR(50) NOT NULL COMMENT 报告类型(daily, weekly, monthly),start_date DATE NOT NULL COMMENT 开始日期,e…

软件工程之软件开发模型(瀑布、迭代、敏捷、DevOps)

1. 瀑布模型&#xff08;Waterfall Model&#xff09; 定义与流程 瀑布模型是线性顺序的开发流程&#xff0c;包含需求分析、设计、编码、测试、维护等阶段&#xff0c;每个阶段完成后才能进入下一阶段&#xff0c;类似“瀑布流水”逐级推进。 核心特点 严格阶段划分&#…

FreeRTOS与RT-Thread内存分配对比分析

一、动态内存分配策略 ​FreeRTOS ​分配算法多样性&#xff1a;提供5种动态内存管理算法&#xff08;heap_1至heap_5&#xff09;&#xff0c;覆盖从简单到复杂的场景。例如&#xff1a; heap_1&#xff1a;仅支持分配不支持释放&#xff0c;适用于固定任务栈分配。heap_4&…

202519 | Mybatis-Plus

快速入门 MyBatis-Plus&#xff08;简称 MP&#xff09;是 MyBatis 的增强工具&#xff0c;它在 MyBatis 的基础上只做增强不做改变&#xff0c;简化了开发&#xff0c;提高了效率。以下是 MyBatis-Plus 的快速入门指南&#xff0c;帮助您快速上手使用。 1. 环境准备 JDK&…

Linux C语言调用第三方库,第三方库如何编译安装

在 Linux 环境下使用 C 语言调用第三方库时&#xff0c;通常需要先对第三方库进行编译和安装。以下为你详细介绍一般的编译安装步骤&#xff0c;并给出不同类型第三方库&#xff08;如使用 Makefile、CMake 构建系统&#xff09;的具体示例。 一般步骤 1. 获取第三方库源码 …

linux基本命令(1)--linux下的打包命令 -- tar 和gzip

tar 解压 &#xff0c;打包 语法&#xff1a;tar [主选项辅选项] 文件或者目录 使用该命令时&#xff0c;主选项是必须要有的&#xff0c;它告诉tar要做什么事情&#xff0c;辅选项是辅助使用的&#xff0c;可以选用。 主选项&#xff1a; c 创建新的档案文件。如果用户想备…

Python 序列构成的数组(对序列使用+和_)

对序列使用和* Python 程序员会默认序列是支持 和 * 操作的。通常 号两侧的序列由 相同类型的数据所构成&#xff0c;在拼接的过程中&#xff0c;两个被操作的序列都不会被 修改&#xff0c;Python 会新建一个包含同样类型数据的序列来作为拼接的结果。 如果想要把一个序列…

[ C语言 ] | 从0到1?

目录 认识计算机语言 C语言 工欲善其事必先利其器 第一个C语言代码 这一些列 [ C语言 ] &#xff0c;就来分享一下 C语言 相关的知识点~ 认识计算机语言 我们说到计算机语言&#xff0c;语言&#xff0c;就是用来沟通的工具&#xff0c;计算机语言呢&#xff1f;就是我们…

【通道注意力机制】【SENet】Squeeze-and-Excitation Networks

0.论文摘要 卷积神经网络建立在卷积操作的基础上&#xff0c;通过融合局部感受野内的空间和通道信息来提取有意义的特征。为了增强网络的表示能力&#xff0c;最近的一些方法展示了增强空间编码的好处。在本研究中&#xff0c;我们专注于通道关系&#xff0c;并提出了一种新颖…

kubernetes Calico(CNI) NetworkPolicy 流量管理 设置networkpolicy 策略 下集

1、kubernetes 网络策略&#xff08;网络隔离策略&#xff09; Network Policy 是 Kubernetes 中用于控制 Pod 之间网络通信的一种机制。它通过定义规则&#xff0c;限制哪些 Pod 或外部实体可以与目标 Pod 通信&#xff08;基于标签、命名空间、端口等&#xff09;。Network …

sqlmap基础命令总结

​注意事项:仅用于授权测试&#xff0c;避免非法使用。 目录 ​一、基础命令 ​二、数据库信息获取 ​三、绕过 WAF/IDS ​四、文件系统与系统命令 ​五、高级功能与优化 ​六、实战示例 ​一、基础命令 ​检测注入点 sqlmap -u "http://target.com/index.php?id1&…

Unity光线传播体积(LPV)技术实现详解

一、LPV技术概述 光线传播体积(Light Propagation Volumes)是一种实时全局光照技术&#xff0c;通过将场景中的间接光信息存储在3D网格中&#xff0c;实现动态物体的间接光照效果。 核心优势&#xff1a; 实时性能&#xff1a;相比传统光照贴图&#xff0c;支持动态场景 硬件…

SpringBoot (一) 自动配置原理

目录 一 自动配置 1:数据源的手动配置 1:SpringBoot的自动配置 二 自动配置的完整流程&#xff1a;&#xff08;底层&#xff09; 1. 场景化依赖与Starter机制 2. 主程序入口与注解驱动 3. 自动配置类的加载与筛选 4. 自动配置类的实现逻辑 5. 自动配置的触发与执行流…

OJ题:移动零

双指针法 c 语言实现 void moveZeroes(int* nums, int numsSize) {int dest,cur; //创建临时指针和目标指针destcur0;//出初始化while(cur<numsSize)//遍历{if(nums[cur]!0){swap(&nums[cur],&nums[dest]);cur;dest;}else{cur;}}} 思路是建立两个指针&#xff0…