每天学点Python Cookbook(四)

数字拾光者
• 阅读 1586

1.寻找上一个星期五


任务:
寻找上一个星期五的日期。

解决方案:
通过python标准库的datetime模块,可以快速完成此任务。

import datetime, calendar

def find_last_Friday():
    last_Friday = datetime.date.today()
    oneday = datetime.timedelta(days=1)
    while last_Friday.weekday() != calendar.FRIDAY:
        last_Friday -= oneday
    print(last_Friday)

测试结果:

每天学点Python Cookbook(四)


2.计算日期之间的时段

任务:
给定两个日期,计算这两个日期之间隔了几天。

解决方案:

def calc_date_time(start_time,end_time):
    count = 0
    oneday = datetime.timedelta(days=1)
    start_time = datetime.datetime.strptime(start_time,'%Y-%m-%d')
    end_time = datetime.datetime.strptime(end_time,'%Y-%m-%d')
    while start_time != end_time:
        start_time += oneday
        count += 1
    return count

测试用例:

if __name__ == '__main__':
    # find_last_Friday()
    start_time = '2018-05-07'
    end_time = '2018-06-01'
    print(calc_date_time(start_time,end_time))

测试结果:

每天学点Python Cookbook(四)

讨论:
此实现方法有一个bug,没法实现一年以上的计算会造成越界错误。此方法也有诸多限制,时间格式是固定的,计算量大时效率很低。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Irene181 Irene181
4年前
一学就会的 Python 时间转化总结(超全)
作者:Peter来源:Python编程时光在生活和工作中,我们每个人每天都在和时间打交道:早上什么时候起床?地铁几分钟来一趟?中午什么时候开始午休?明天是星期几?距离上次买衣服已经2个月呢?领导让我给代码加上一个定时任务的功能,怎么办?不同的情况会遇到不同的时间问题:具体
Souleigh ✨ Souleigh ✨
4年前
python时间模块的使用 white_study
前言:在开发中经常会与时间打交道,如:获取事件戳,时间戳的格式化等,这里简要记录一下python操作时间的方法。python中常见的处理时间的模块:time:处理时间的模块,如获取时间戳,格式化日期等datetime:date和time的结合体,处理日期和时间calendar:日历相关的模块,如:处理年历/月历tim
黎明之道 黎明之道
4年前
python数据分析与可视化——时间序列数据分析
时间序列数据分析日期和时间数据类型datetime构造Python标准库中包含了用于日期(date)、时间(time)、日历(calendar)等功能的数据类型,主要会用到datetime、time、ca
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
3年前
Python异常捕获与处理
一、任务描述  本实验任务主要对Python异常进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python异常的基本操作。并对异常的基本操作进行整理并填写工作任务报告。二、任务目标1、掌握Python异常的捕获2、掌握Python异常的处理三、任务环境Ubuntu16.04、Python2.7
Stella981 Stella981
3年前
Python任务调度模块 – APScheduler
APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用。目前最新版本为3.0.x。在APScheduler中有四个组件:触发器(trigger)包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行
Stella981 Stella981
3年前
Noark入门之异步事件
引入异步事件主要是为了各模块的解耦,每当完成一个动作时,向系统发布一个事件,由关心的模块自己监听处理,可选择同步处理,异步处理,延迟处理。何时发布事件,当其他模块关心此动作时<br比如获得道具时,任务系统模块要判定完成进度,BI模块需要上报等等都可以监听此事件,已达模块解耦0x00事件源一个实现xyz.noark.core.event
Linux下安装Anaconda3,这个教程一定要看!
前言大家好,我是爱写Bug的麦洛。由于工作需要,要为客户搭建Python开发环境。作为从来没有接触过Python的小白,为了完成任务,也是破费周折,请教了身边做Python的朋友,发现大家都是通过Anaconda来搭建Python环境,Ana
小万哥 小万哥
1年前
Python 日期和时间处理教程:datetime 模块的使用
Python中的日期不是独立的数据类型,但我们可以导入一个名为datetime的模块来使用日期作为日期对象。示例:导入datetime模块并显示当前日期:pythonimportdatetimexdatetime.datetime.now()print(x
数字拾光者
数字拾光者
Lv1
泉眼无声惜细流,树阴照水爱晴柔。小荷才露尖尖角,早有蜻蜓立上头。
文章
6
粉丝
0
获赞
0