关于第十二届蓝桥杯时间显示题中包和模块的使用解释

题目信息:

解题代码:

from datetime import datetime, timedelta
# 定义起始时间,即 Unix 时间戳的零点(1970年1月1日)
start = datetime(year=1970, month=1, day=1)
# 定义时间间隔,这里以毫秒为单位
dela = timedelta(milliseconds=1)

# 从用户那里获取一个整数输入,代表自 Unix 时间戳零点以来的毫秒数
now = int(input())
# 将输入的毫秒数转换为时间间隔,并与起始时间相加得到具体时间点
now = start + now * dela

# 按照格式 "%02d:%02d:%02d" 输出小时、分钟和秒,不足两位的前面补零
print('%02d:%02d:%02d' % (now.hour, now.minute, now.second))

模块和包的解释

from datetime import datetime, timedelta 是 Python 中导入 datetime 模块中特定对象(类)的一种方式。这里导入了两个主要的对象:datetime 类和 timedelta 类。下面分别介绍这两个类的使用规则,以及如何在代码中正确地使用它们。

datetime 类

datetime 类用于表示具体的时间点,包括年、月、日、小时、分钟、秒和微秒。使用规则如下:

创建 datetime 对象:
from datetime import datetime

# 1. 通过当前系统时间创建
now = datetime.now()

# 2. 通过指定各时间成分创建
dt = datetime(2024, 2, 12, 15, 30, 45, 123456)  # 年、月、日、时、分、秒、微秒
访问和修改属性:
year = dt.year  # 获取年份
month = dt.month  # 获取月份
day = dt.day  # 获取日期
hour = dt.hour  # 获取小时
minute = dt.minute  # 获取分钟
second = dt.second  # 获取秒
microsecond = dt.microsecond  # 获取微秒

# 注意:直接修改 `datetime` 对象的属性通常是不允许的,因为它们是不可变对象。若需改变时间点,应创建新的 `datetime` 对象。
时间运算:
# 1. 添加或减去 timedelta 对象以改变时间点
later = dt + timedelta(hours=3)  # 向后推移3小时
earlier = dt - timedelta(days=2)  # 向前回溯2天

# 2. 与另一个 datetime 对象比较
is_later = later > dt  # 检查 later 是否晚于 dt
格式化输出:
# 使用 strftime 方法按照指定格式输出字符串
formatted = dt.strftime('%Y-%m-%d %H:%M:%S')  # "2024-03-01 15:30:45"

timedelta 类

timedelta 类表示两个时间点之间的间隔,通常用来表示时间差。使用规则如下:

创建 timedelta 对象:
from datetime import timedelta

# 1. 通过指定时间间隔的各个成分创建
tdelta = timedelta(days=2, hours=5, minutes=30, seconds=10, milliseconds=500)

# 2. 通过关键字参数创建
tdelta = timedelta(days=1, hours=12)  # 相当于 1.5 天
访问属性:
days = tdelta.days  # 获取总天数
seconds = tdelta.seconds  # 获取剩余秒数(不包括完整的天数)
microseconds = tdelta.microseconds  # 获取剩余微秒数

# 注意:timedelta 对象的属性同样是只读的,不能直接修改。
时间运算:
# 1. 与 datetime 对象相加或相减(如上所述)
new_dt = dt + tdelta  # 将时间间隔添加到 datetime 对象上

# 2. 与其他 timedelta 对象相加、相减或比较
combined_tdelta = tdelta1 + tdelta2
difference_tdelta = tdelta1 - tdelta2
is_longer = tdelta1 > tdelta2

总结使用规则:

  1. 使用 from datetime import datetime, timedelta 导入所需类。
  2. 使用 datetime 类创建并操作具体时间点。
    • 通过 datetime.now() 获取当前时间。
    • 通过 datetime(year, month, day[, hour[, minute[, second[, microsecond]]]]) 构造指定时间点。
    • 通过访问 .year.month.day.hour.minute.second.microsecond 属性获取时间成分。
    • 通过加减 timedelta 对象改变时间点。
    • 使用 strftime 方法格式化输出时间字符串。
  3. 使用 timedelta 类表示时间间隔。
    • 通过 timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]) 构造时间间隔。
    • 通过访问 .days.seconds.microseconds 属性获取间隔成分。
    • 与 datetime 对象进行加减运算以改变时间点。
    • 与其他 timedelta 对象进行加减、比较运算。

遵循上述规则,可以在 Python 程序中有效地使用 datetime 和 timedelta 类进行日期时间相关的操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用3点结构数列构造4点结构数列

在一个行和列可以自由变换的平面上,3个点只有6种相对位置关系 现在有一个3点的数列就按照1,2,3,4,5,6的顺序排列,让这个数列按照431,34-1的方式递推,直到稳定。 前4次迭…

混合专家(MoE)模型示例

文心一言 混合专家(Mixture of Experts,MoE)模型是一种机器学习架构,它结合了多个专家模型(或子模型)以处理不同的输入数据或任务。每个专家模型在其特定领域内表现出色,而MoE模型则负责根据输…

软件架构复用

1.软件架构复用的定义及分类 软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需要,是以规定的方式用公共的核心资产集成开发出来的。即围绕核心资产库进行管理、复用、集成新的系统。核心…

.locked勒索病毒的最新威胁:如何恢复您的数据?

导言: 在当今日益数字化的世界中,网络安全问题日益凸显,其中勒索病毒便是一个不容忽视的威胁。近年来,.locked勒索病毒逐渐崭露头角,其恶意行为给广大用户带来了极大的困扰。本文91数据恢复将简要介绍.locked勒索病毒…

DWARF简析

sevaa/dwex: DWARF Explorer - a GUI utility for navigating the DWARF debug information (github.com)eliben/pyelftools: Parsing ELF and DWARF in Python (github.com)8 调试信息标准: DWARF GitBook (hitzhangjie.pro) 1.需求 通过elf获取到原文件中的相关数据定义&am…

LeetCode-热题100:2. 两数相加

题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都…

金融贷款批准预测项目

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 在金融服务行业,贷款审批是一项关键任务,它不仅关系到资金的安全,还直接影响到金融机构的运营效率和风险管理…

【Java笔记】多线程0:JVM线程是用户态还是内核态?Java 线程与OS线程的联系

文章目录 JVM线程是用户态线程还是内核态线程什么是用户态线程与内核态线程绿色线程绿色线程的缺点 线程映射稍微回顾下线程映射模型JVM线程映射 线程状态操作系统的线程状态JVM的线程状态JVM线程与OS线程的状态关系 Reference 今天复盘一下Java中,JVM线程与实际操作…

面试算法-140-接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2…

Java web第一次作业

1.学会用记事本编写jsp文件&#xff0c;并放进tomcat的相关目录下&#xff0c;运行。 源代码&#xff1a; <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head> <title>我的第一个JSP页面</ti…

在深度学习模型中引入先验

当面对复杂问题的时候&#xff0c;在深度学习模型提取特征的过程中完全抛弃知识是非常不明智的策略。虽然有很多研究者在深度网络处理数据之前&#xff0c;利用具有某种知识的模型驱动方法对数据进行预处理&#xff0c;但是这种方法没有进行实质性地改造深度网络&#xff0c;且…

组合总和 II-java

题目描述: 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 解题思想: 回溯法 剪枝 : …

PWM技术的应用

目录 PWM技术简介 PWM重要参数 PWM实现呼吸灯 脉宽调制波形 PWM案例 电路图 keil文件 直流电机 直流电机的控制 直流电机的驱动芯片L293D L293D引脚图 L293D功能表 直流电机案例 电路图 keil文件 步进电机 步进电机特点 步进电机驱动芯片L298 L298引脚图 L…

【Canvas与艺术】绘制黑白纹章,内嵌陶渊明南山诗

【效果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>用Canvas绘制黑白纹章</title><style type"text/css…

Doris实践——信贷系统日志分析场景的实践应用

目录 前言 一、早期架构演进 1.1 架构1.0 基于Kettle MySQL离线数仓 1.2 架构2.0 基于 Presto / Trino统一查询 二、基于Doris的新一代架构 三、新数仓架构搭建经验 3.1 并发查询加速 3.2 数仓底座建设 四、Doris助力信DolphinScheduler 和 Shell 贷业务场景落地 4.…

QT----opencv4.8.0编译cuda版本,QTcreater使用

目录 1 编译opencv4.8.02 验证能否加载GPU cuda12.1 opencv4.8.0 vs2019 cmake3.29 1 编译opencv4.8.0 打开cmake&#xff0c;选择opencv480路径&#xff0c;build路径随意 点击configure后&#xff0c;选择这些选项&#xff0c;opencv_word&#xff0c;cuda全选&#xff0c;…

一款功能强大且易于使用的视频剪辑应用程序

一款功能强大且易于使用的视频剪辑应用程序&#xff0c;它提供了丰富多样的转场特效和滤镜&#xff0c;让用户能够轻松地为视频添加各种炫酷的效果。与其他视频编辑软件相比&#xff0c;剪映国际版的最大亮点在于其完全免费使用。首先&#xff0c;剪映国际版为用户提供了丰富的…

pth转onnx,同时使用onnx进行部署

当像我一样的菜鸡在使用开源的深度学习代码时&#xff0c;对于输出的pth模型文件&#xff0c;在预测时使用开源的predict.py文件进行部署&#xff0c;但是使用pth文件有一个问题&#xff0c;就是每次他都要重新加载一次模型&#xff0c;而且不方便移植&#xff0c;所以&#xf…

Java 面向对象(基础)

1、面向对象的概述及两大要素&#xff1a;类与对象 1. 面向对象内容的三条主线&#xff1a; - Java类及类的成员&#xff1a;&#xff08;重点&#xff09;属性、方法、构造器&#xff1b;&#xff08;熟悉&#xff09;代码块、内部类 - 面向对象的特征&#xff1a;封装、继承…

31-数据流:通过iam-authz-server设计,看数据流服务的设计

IAM数据流服务iam-authz-server的设计和实现。 iam-authz-server的功能介绍 iam-authz-server目前的唯一功能&#xff0c;是通过提供 /v1/authz RESTful API接口完成资源授权。 /v1/authz 接口是通过github.com/ory/ladon来完成资源授权的。 因为iam-authz-server承载了数据流…