Python计算出给定的时间段的具体日期列表-大全

2023-11-11

    由于工作中经常用到关于用户自定义时间,来进行后台数据的查询,特意整理了一下工作中常用的到的关于时间列表的一个函数,可以计算出某一年中的具体哪个周的开始和结束日期,某个周的具体日期列表(2015年38周),自定义时间段的具体日期列表(20150901-20151010)

1、计算周的日期函数。包含某一周开始、结束日期,某一周的详细日期列表

import datetime
def allweeks(week):
    "计算一年内所有周的具体日期"
    _week = int(week)-1
    current = datetime.datetime.now()
    start = datetime.date(current.year,1,1)
    last_day = datetime.date(current.year,12,31)
    isfirst = start.weekday()
    last_week = last_day.strftime('%W')
    weeks={} #计算出一年中每个周的开始和结束日期。例如:0: [datetime.date(2015, 1, 1), datetime.date(2015, 1, 4)]
    date_list_for_week = [] #用于得出具体的某一个周的具体天数列表:例如: 第9周:['20150223', '20150224', '20150225', '20150226', '20150227', '20150228', '20150301']
    if isfirst !=0:
        end = datetime.timedelta(7-start.weekday()-1)
        weeks[0]=[start,start+end]
    start += datetime.timedelta(7 - start.weekday())
    for i in range(0,int(last_week)):
        days = datetime.timedelta(weeks=i)
        end = start + days
        if i+1 == int(last_week):
            weeks[i+1] = [end,last_day]
        else:
            weeks[i+1] = [end,end + datetime.timedelta(6)]
    starttime = ''.join(str(weeks[_week][0]).split('-'))#计算出给出周的开始日期,如20150907
    endtime =  ''.join(str(weeks[_week][1]).split("-"))#计算出给出周的结束日期,如201509013
    delta = datetime.timedelta(days=1)
    startdate = datetime.datetime(int(starttime[0:4]),int(starttime[4:6]),int(starttime[6:8]))
    if int(starttime[4:6]) == int(endtime[4:6]):
        for i in range(int(endtime[6:]) - int(starttime[6:])+1):
            days = (startdate +delta*i).strftime('%Y%m%d')
            date_list_for_week.append(days)
    elif int(starttime[4:6]) != int(endtime[4:6]):
        for i in range(7):
            days = (startdate +delta*i).strftime('%Y%m%d')
            date_list_for_week.append(days)
    return date_list_for_week,weeks,starttime,endtime
if  __name__ == "__main__":
    week =9
    print allweeks(week)

2、计算自定义时间的日期函数。(比如计算20150811-20150922之间的日期列表)

import datetime
def get_yestoday(starttime,endtime):
    startdate = datetime.datetime(int(starttime[0:4]),int(starttime[4:6]),int(starttime[6:8]))
    #now = datetime.datetime.now()
    delta = datetime.timedelta(days=1)
    # my_yestoday = startdate + delta
    # my_yes_time = my_yestoday.strftime('%Y%m%d')
    n = 0
    date_list = []
    while 1:
        if starttime<=endtime:
            days = (startdate  + delta*n).strftime('%Y%m%d')
            n = n+1
            date_list.append(days)
            if days == endtime:
                break
    return date_list
print get_yestoday('20150811','20150922')


转载于:https://blog.51cto.com/leizhu/1699298

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python计算出给定的时间段的具体日期列表-大全 的相关文章

随机推荐

  • 普通用户没有管理员权限但是可以安装软件或者打开Admin权限的CMD

    案例分析 除了IT肯定还有行政的吗 那IT肯定跟行政玩的好打好关系才可以顺风顺水啊 那行政肯定有些东西打开需要权限的啊 例如IT 帮别人解锁账号的工具 自己忙嘛 小事情肯定你懂的哈哈哈 偷个懒 不废话 上代码 顺便代码解析 其实就是通过se
  • 性能测试系列(二)

    性能测试之性能分析命令 1 CPU分析 a cpu基本信息 命令 lscpu Cpu架构 64 位 Cpu 核心数 6 NUMA UMA节点数为 2个 显示值加 1 Cpu的核心频率 说明此服务器为虚拟机 此服务器的 cpu使用的是 使用的
  • 如何使用python实现自动化办公?全网最全干货来了!

    大家好 接下来我们来学习如何使用python 实现自动化办公 而不需要我们人工 或者说尽量减少我们人工的参与 文末领读者福利 自动化办公在我们的生活中非常的常见 让我们看看通过本博客你可以学习到python哪些自动化操作 看完这幅图 大家就
  • Python Web开发的完整指南

    博客 https somenzz cn 电脑阅读更方便 阅读原文可访问文中的链接 学了 Python 这么长时间了 终究觉得编程语言仅仅是个工具 要想通过技术实现自己的价值 终究离不开具体的应用场景 而应用场景繁多 我们的时间和精力都是有限
  • 前端(技巧+踩坑记录)

    1 计算属性用法 2 map返回数据 3 过渡效果 移动端过渡 效果图 更多过渡效果 进入 离开 列表过渡 Vue js pc端过渡动画 直接用el组件 自带过渡 4 el分页组件 5 svelte js vite使用sass 5 1 下载
  • TOP100案例分享 “预测性维护”

    科技领域每年有哪些技术和产品正在成为不可磨灭的 标记 和 符号 国内外科技圈又有哪些人和组织最值得点赞 哪些创新案例最值得借鉴和复盘 由麦思博 msup 有限公司主办的 以 人工智能时代的研发战略演进 为主方向的第六届全球软件案例研究峰会
  • 求两个数的 最大公约数 和最小公倍数

    最大公约数 思路 假设有两个数a b 求a b的最大公约数 令a b 得到的结果用tmp记录 再将b的值给a tmp的值给b 此时a的值变成了b b的值变成了tmp 循环进行a b 直至a b的结果为0时 循环结束 此时b的值即为最小公约数
  • QString 转换为 char */ unsigned char *

    1 QString 转换为 char 将 QString 转 char 需要用到 QByteArray 类 QByteArray 类的说明详见 Qt 帮助文档 因为 char 最后都有一个 0 作为结束符 而采用 QString toLat
  • 数据分析入门-SARIMA模型案例分析(超详细)

    由于代码中注释已经非常的清晰 文章中就不过多叙述了 直接上代码 代码如下 在开始之前先导入所需要的包 import warnings do not disturbe mode warnings filterwarnings ignore i
  • 9.9+9.14字节三轮面试手撕代码记录

    一 根据字符出现的频率重新排列字符串 如 happy gt pphap import java util Scanner import java util Map import java util HashMap import java u
  • 电感升压(boost电路)感性理解

    目录 前言 一 电感升压基本原理 二 工作原理步骤 1 开关闭合 给电感和电容充电 电容获得输入电压 2 开关断开 电感继续给电容充能 电容获得更高电压 总结 前言 以前在消费类小家电方案中 经常用到电感升压的应用 一个很典型的应用是手持小
  • sh脚本报错“eval: line 1: syntax error: unterminated quoted string”

    有个之前一直正常运行的脚本 突然报错了 eval line 1 syntax error unterminated quoted string 提示也比较直接eval使用出的问题 过滤一下脚本内容 果然找到了一个疑似问题代码 eval ec
  • 切割列表[]

    import sys def sliceABC sequence start 0 K len sequence if start gt K print 切割数量超出范围 sys exit return sequence start K se
  • Kaplan-Meier生存曲线绘制

    Kaplan Meier生存曲线绘制 生存分析研究的是某个事件发生之前过去的时间 在临床研究中最常见的应用就是死亡率的估计 预测患者的生存时间 不过生存分析也可以应用于其他领域如机械故障时间等 在R中 survival包中有很多函数可以对生
  • 定根最小树形图 朱刘算法 luogu P4716

    https www luogu org problem P4716 include
  • python混淆矩阵实证分析_如何在Python中编写混淆矩阵?

    I wrote a confusion matrix calculation code in Python def conf mat prob arr input arr confusion matrix conf arr 0 0 0 0
  • Google Colab 读取/存储 云盘内的文件

    背景 Google Colaboratory是谷歌开放的一款研究工具 主要用于机器学习的开发和研究 这款工具让广大的AI开发者可以使用免费的GPU 在训练模型时 使用GPU自然速度飞快 那么训练完之后最重要的自然就是将训练出来的模板数据保存
  • 华为再发新版鸿蒙OS系统!新增超级终端功能:可媲美iOS系统

    此文章转自乐字节 一生万物 万物归一 这不是哪部武侠小说的招式 也不是哪部哲学作品的思想 它是华为鸿蒙系统的设计理念 化简为繁 精妙绝伦 相信大家都知道 自从华为推送了鸿蒙OS手机Bate版本系统以后 不少参与鸿蒙系统内测用户便纷纷反馈 在
  • XCTF:NewsCenter

    题目如下 因为有输入框 我习惯初步判断它为sql注入 1 测试是否存在注入点 输入 1 结果报错了 然后尝试 1 2 知道存在注入 且为字符型注入 然后进行字段数猜测 直到字段数为4开始报错 3 尝试获得显示位 4 查库名 5 查表名 6
  • Python计算出给定的时间段的具体日期列表-大全

    由于工作中经常用到关于用户自定义时间 来进行后台数据的查询 特意整理了一下工作中常用的到的关于时间列表的一个函数 可以计算出某一年中的具体哪个周的开始和结束日期 某个周的具体日期列表 2015年38周 自定义时间段的具体日期列表 20150