第二节 Python日期问题

如何将 Python datetime.datetime 转换为 Excel 序列号? Excel 使用一种特殊格式来存储日期和时间,称为序列号。序列号是自 1 年 1899 月 日(Excel 认为是时间开始的日期)以来的天数。Python 的日期时间模块提供了处理日期和时间的强大工具。但是,当涉及到与其他应用程序(例如Microsoft Excel)的互操作性时,我们经常会遇到将Python日期时间对象转换为Excel的串行日期数字格式的需求。在本文中,我们将探讨如何执行这种转换并弥合 Python 和 Excel 之间的差距。 阅读详情

一、datetime库详解

datetime 库以类的方式提供多种日期和时间表达方式。
(1) datetime.date:日期表示类,可以表示年、月、日等。
(2) datetime.time:时间表示类,可以表示小时、分钟、秒、毫秒等。
(3) datetime.dateime:日期和时间表示的类,功能覆盖 date 和 time 类。
(4) datetime.timedelta: 与时间间隔有关的类。
(5) datetime.tzinfo:与时区有关的信息表示类。

# (0)导入模块
from datetime import datetime,timedelta,tzinfo
from datetime import *  #直接导入全部

# (1)传入日期 最多可传入7个元素,即可到微秒。
dt1 = datetime(1901,1,1)
dt2 = datetime(2000,12,31)

# (2)求某个日期是星期几
print(dt1.weekday())
#根据日期计算星期后返回 0~6,对应星期一到星期日
print(dt1.isoweekday())  
#根据日期计算星期后返回 1~7,对应星期一到星期日

# (3)求两个日期之间相差多少天
td = dt2 - dt1

# (4)求两个日期之间相隔多少个星期
print(td.days//7)

# (5) 求日期对象的年(year),月(month),日(day),时(hour),分(minute),秒(second),微秒(microsecond)
print(dt1.year)
# (6)将日期转化为字符串
import datetime
dt=datetime.datetime(2006, 11, 21, 16, 30)
dt.strftime("%Y-%m-%d %H:%M")
'2006-11-21 16:30'
  -
dt1 = datetime(2022,1,1)
s = f"%02d%02d%02d"%(dt1.year,dt1.month.dt1.day)

# (7)将字符串转化为日期(datetime类型)
from datetime import datetime
date1 = "2022.05.11 13:30:00"
date1 = datetime.strptime(date1, "%Y.%m.%d %H:%M:%S")
print(" date1:", date1)
print(" 日期的类型是: %s"%type(date1))
   - - -
date=input()  #20200202  纯字符串格式
y=int(date[0:4]) # 将输入的日期转化为年月日的形式
m=int(date[4:6])
d=int(date[6:])
dd=datetime.date(y,m,d) # 将y,m,d转化为日期格式

# (8)增加或减少天数(days)、小时数(hours)等,计算昨天的日期,半年后的日期等。
from datetime import timedelta
dt1 = datetime(2022, 5, 12, 8, 30, 0)
dt2 = dt1 + timedelta(days = 1) #在原有时间上增加1天;
dt3 = dt1 + timedelta(minutes = -30) #在原有时间上减少30分钟
dt1 += timedelta(days=1,hours=1,minutes=30,seconds=30,microseconds=30) #没有years

# (9)日期题通常需要转化为字符串,进行进一步操作
#将日期转化为字符串,并将'-'去掉
y,m,d = 2023,4,3
date = datetime.date(y,m,d)
print(date)     #2023-04-03
str_date = str(date).replace('-','') 
print(str_date) #20230403

# (10)判断日期是否合法
#try方法
try:
    a=datetime.date(2021,2,29)
    print('yes')
except:
    print('no')
#判断大小月
day = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
m, d = int(input()), int(input())
print('yes' if m <= 12 and d <= day[m] else 'no')

二、习题

(1)题目:星期一

http://oj.ecustacm.cn/problem.php?id=1360

2018年省赛,填空题

题目描述
整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?
题目分析:
EXCEL 求解 或者 Python 的 datetime库求解

from datetime import *
dt1 = datetime(1901,1,1)
dt2 = datetime(2000,12,31)
print(dt1.weekday())  #打印出1,表示周二。  
td = dt2 - dt1        #注意:周一是0,周日是6
print(td.days//7)            

(2)题目: 顺子日期

2022年省赛,填空题

题目描述
小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。
顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。
例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。
小明想知道在整个 2022 年份中,一共有多少个顺子日期?

from datetime import *
dt1 = datetime(2022,1,1)
cnt = 0
#判断是否是闰年:年份是4或者400的倍数,闰年有366天,故2022不是闰年。
for i in range(366):
    s = f"%d%02d%02d"%(dt1.year,dt1.month,dt1.day) #月份和日保留两位小数-3月2日:0302
    dt1+=timedelta(days=1)  #下一天
    if "012" in s or "123" in s or"234" in s or"345" in s 
    or "456" in s or "567" in s or "789" in s:
        cnt+=1
print(cnt)
用Python做一个课程表 【代码】用Python做一个课程表。 阅读详情

相关推荐

JasperReport制作行内容合并的表格

效果图: 实现思路一: 交叉表 另一个思路: 普通表格 缺点:无法实现内容 垂直居中显示 准备工作 一、数据准备 DROP TABLE IF EXISTS `address_item_sex_value`; CREATE TABLE `address_item_sex_value` ( `id` int(11) NOT NULL AUTO_INCREM...

weixin_34148456的博客 2468

python解决时间序列中的日期缺失及日期重复问题

问题描述 在处理时间数据的时候会遇到日期缺失和日期重复的问题,如上图所示,2点、7点的数据重复了,缺少了4点的数据。那么怎么处理这些数据。 处理日期重复 #读取数据,输出前十行 import pandas as pd df = pd.read_csv('D:\data-mining\data1/#89.csv') power=df.loc[:, ['DataTime','fValueData']] print(power[:10]) #打印重复值 print(power[power.d.

jwzsl的博客 5218

ISA-95(S95)标准详解

ISA-95是制造业系统集成的“通用语言”,通过分层模型和信息流规范,打通企业计划层与设备控制层,成为实现数字化工厂的核心标准之一。其与ISA-88的协同应用,可进一步优化生产执行与资源管理的效率。标准,旨在解决企业商业系统(如ERP)与工业控制系统(如MES、SCADA)之间的集成问题。

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 3741

python中datetime函数_Python datetime包函数简单介绍

一、datetime包(上接连载7内容)1.函数:datetime(1)用法:输入一个日期,来返回一个datetime类​(2)格式:datetime.datetime(年,月,日,hour=,minute=,second=)其中hour,minute,second可选(3)附加类方法:today():返回本地当前时间now():返回本地当前时间utcnow():返回本地当前时间fromtimes...

weixin_39835147的博客 394

STM32 LWIP服务器内存泄漏排查实录:从20个客户端连接测试到稳定运行的优化之路

本文详细记录了STM32 LWIP服务器在20个TCP客户端连接压力测试中出现的内存泄漏问题排查与优化过程。通过压力测试环境搭建、内存泄漏检测工具使用、常见泄漏点分析与修复,最终实现了稳定支持多客户端连接的优化方案,包括连接数动态限制、心跳检测机制和内存泄漏自检机制等关键优化措施。

weixin_42530458的博客 386

电路方案分析(十二)USB Type-C PD 移动电源参考设计方案

TPD8S300为USB Type-C连接器的CC1,CC2,SBU1和SBU2引脚集成了四个通道的20v短到vbus和过压保护。TPD8S300集成了八个IEC61000-4-2ESD保护通道,用于USB Type-C连接器的CC1、CC2、SBU1、SBU2、DP_T (顶侧D-) 、DM_T (顶侧D-) 、DP_B (底侧D-) 引脚。当电源组是接收器并为其自身的电池充电时,该芯片会对电池充电,而在电源模式期间,该芯片充当DC-DC转换器以生成VBUS。

小幽余生不加糖 2万+

第二节课 python基础

目录 1、选择结构 2、循环结构 3、文件IO 4、操作mysql 5、日期函数 6、函数 7、面向对象 8、包 9、异常处理 1、选择结构 if、elif、else if 表达式1: 代码1(前面必须是四个空格) 代码2(前面必须是四个空格) 代码3(前面必须是四个空格) elif 表达式2: 代码5(前面必须是四个空格) 代码6(前面必须是四个空格) 代码7(前面必须是四个空格) ..... ..... else: 代码8(前面必须是四个空格) 代码9

m0_47120517的博客 1635

Android 10.0 任务栏音乐播放器后台播放杀进程功能实现

在10.0的系统rom定制化开发过程中,在某些情况下在安装第三方播放器以后,播放音乐的时候,在最近任务栏recents列表中,点击全部清除,发现音乐播放器还在播放音乐,导致出现bug,完整的 解决方法,肯定是需要点击全部清除以后,音乐播放器也被杀掉进程,接下来看下这个问题怎么解决

安卓兼职framework和app工程师的博客 654

学习python第二节课,编写的一款数字小游戏和乘法口诀

for k in range(1,10): #对象变动(乘法前面的乘数)变动 print #打印 for c in range(1,k+1): #对象变动(乘法后面的被乘数)变动 print("%d*%d=%d\t" % (k,c,k*c),end='') #对象排列 print('')

cnzzym的博客 757

VSS shielding线可以floating吗?

shielding vss不打孔,就相当于dummy metal,如果周围有其他干扰线,他们影响了这段dummy metal,这段dummy metal仍然会对目标线产生干扰,bug的是,工具知道这段dummy是vss,那么计算寄生的时候仍然把它当vss,就有可能噪声没有完全消除,而用户又看不见。而真正接地的线,相当于一直是0,就不会对目标线产生干扰,一般加shield是在route之前,这时候shield能尽量覆盖目标线,等到绕线后再加就会出现shield只覆盖到一部分目标线的情况。

m0_61544122的博客 6642

【推荐100个unity插件】对话系统插件——YarnSpinner-Unity插件

Yarn Spinner是一款专为游戏对话设计的脚本语言,适用于Unity等引擎。本文介绍了在Unity中安装和使用Yarn Spinner的完整流程:首先通过Package Manager添加仓库并安装插件;然后创建Yarn Script和Project文件,配置对话系统;接着编写Yarn脚本定义对话内容,并展示运行效果;最后讲解了按键控制和多语言本地化设置。该工具采用类似剧本的简洁格式,支持分支对话、条件逻辑等功能,能有效提升游戏叙事的开发效率。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2217

【Python-4】Date and Time

第一节 1 介绍得到当前的时间datetime.now() 2 练习 1 设置变量now的值为datetime.now() 2 打印now的值 from datetime import datetime now = datetime.now() print now 第二节 1 介绍从datetime.no...

藏经阁 | 玄苦 1636

基于simulink 的不间断电源ups的项目实例

UPS系统的核心组件包括整流器、逆变器、电池管理系统和控制系统。- **Three-Phase Controlled Rectifier**:设置触发角为0度,用于控制整流器的输出电压。- **Three-Phase Inverter**:设置逆变器的输出频率为60Hz,用于将直流电转换为交流电。- **Control System**:编写MATLAB函数,用于监测市电状态并控制各模块的工作模式。- **Step**:设置阶跃时间,例如0.05秒,阶跃前后的值分别为0和1,用于模拟市电中断。

xiaoheshang_123的博客 711

第三章:数字日期和时间

- nlargest() 与 nsamllest(),可简易获得 import heapq mlist = [-5,9,3,99,27,4,35,0] #获取列表中的最大2个值 print(heapq.nlargest(2,mlist)) #[99, 35] #获取列表中最小1个值 print(heapq.nsmallest(1,mlist)) #[-5] 如果列表套字典的情况,对多个字...

xiangchi7的博客 584

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

第二节 函数、模块、包、类(熟练掌握)

我们将从函数的基础知识出发,了解如何封装代码以实现重用和模块化。接着,我们将探讨模块和包的使用,学习如何组织和管理代码,以及如何利用Python标准库和第三方库扩展功能。课程的重点将放在类的学习上,包括类的定义、实例化、属性和方法等基本概念,以及继承、多态等面向对象编程的高级特性。

m0_67165162的博客 1440

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python-django 第二节

ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库ORM是“对象-关系-映射”的简称,主要任务是: 根据对象的类型生成表结构将对象、列表的操作,转换为sql语句将sql查询到的结果转换为对象、列表 这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动Dj

qq_37634812的博客 415

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python DTCloud API 查询一条信息 第二节

查询一条信息 #::::::1,查询一条信息 def _api_one(self, kw): data = { "errcode": 0, # 错误码 'errmsg': 'ok', 'data': self._api_one_browse(self.sudo().browse(int(kw['job_user_id']))), 'message': '返回成功!'} return data def _api_one_bro

DTCloud 1260

python小白之路:第五章 模块、包与库 第二节 内置模块

序列化 可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据。 1.二进制序列化模块pickle import pickle 一些函数: pickle.dumps() 序列化,可以把一个python的任意对象序列化成为一个二进制 pickle.loads() 反序列化,可以把一个序列化后的二进制数据反序列化为python的对象 pickle.dump(vars,file=) 序列化,可以把一个数据对象进行序列化并写入到文件中 pickle.load(

Gnos96的博客 226

七、Django模型基础第二节——常用查询

1 常用的模型字段类型 官方文档链接: https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 常用的字段类型 模型字段类型映射到数据库中类型备注 IntegerField 整型 int - CharField 字符类型 varchar...

weixin_33962621的博客 107

如何快速部署awesome-python3-webapp:完整实战教程

**awesome-python3-webapp 部署**零基础也能一步到位!这是一份面向小白的 **Python 入门实战教程**,跟着 16 天的每日源码,亲手写出一个完整的 **Python 网站 + iOS App**。本文带你用最短的步骤完成 **awesome-python3-webapp 快速部署**,从克隆仓库到跑起服务,全程不到 10 分钟 ⏱️。 ## 一、awesome-p

gitblog_01131的博客 876

零基础:100个小案例玩转Python软件开发!第二节:信息录入(上)

我们将Form_1设为”打包排布“后,从左边的控件工具条拖动一个”容器“控件Frame放置到Form_1中,创建出Frame_1,这时在正下方会出现一个布局设置工具条,我们在布局方式的下拉列表框选择”打包排布“,停靠选择”上“,填充选择”横向“,高度填300,经过这样的设置后,Frame_1将会自动的贴紧Form_1的上方,然后横向扩展填充,这样做的好处是不管Form_1窗口大小如何变化,Frame_1都能自动扩展,保持横向填充并高度不变。再也不用摸黑干活啦~!

红孩儿的游戏编程之路 742

Python 入门教程 4 ---- Date and Time

第一节 1 介绍得到当前的时间datetime.now() 2 练习 1 设置变量now的值为datetime.now() 2 打印now的值 from datetime import datetime now = datetime.now() print now 第二节 1 介绍从datetime.now得到的信息中提取出year,month...

caobihole 165

数据科学库学习第二节

一、绘制散点图 from matplotlib import pyplot as plt # 导入matplotlib模块中的 pyplot类,命名为 plt from matplotlib import font_manager # 导入matplotlib模块中的 font_manager类,设置字体 a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23] b = [

qq_29839055的博客 187

第二章 python分布式爬虫打造搜索引擎环境搭建 第二节正则表达式的学习和编写练习

第一,正则表达式介绍 1. 为什么必须会正则表达式?关于正则表达的详细介绍可查看一篇官网的技术文档!        正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,...

Demon丶冷漠 234

Django初学第二章第二节 创建博客数据表

文章中所有命令皆在Anaconda PowerShell Prompt中cd 文件中进行,详情请看上一部分

pwtnb的博客 1175
上一篇: 第一节 Python进制转换
下一篇: 《操作系统》蜂考突击课习题课时一答案
temps-serein
博客等级 码龄5年 62粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值