首页 > 编程语言 >python获取当前季度或上一季度的起止日期

python获取当前季度或上一季度的起止日期

时间:2022-12-14 14:00:29浏览次数:56  
标签:python 起止日期 一季度 days datetime current year date quarter

import datetime
import calendar


def get_quarter_date(quarter='current'):
    """
    获取当前季度或上一季度的起止日期
    :param quarter: [current , last], default current
    :return: tuple of datetime.date
    """
    today = datetime.date.today()
    year = today.year
    current_quarter = ((today.month - 1) // 3) + 1
    quarter_start = quarter_end = None

    if quarter == 'current':
        if current_quarter == 4:
            quarter_start = datetime.date(year, 10, 1)
            _, days = calendar.monthrange(year, 12)
            quarter_end = datetime.date(year, 12, days)
    else:
        current_quarter -= 1
        if current_quarter == 0:
            quarter_start = datetime.date(year - 1, 10, 1)
            _, days = calendar.monthrange(year - 1, 12)
            quarter_end = datetime.date(year - 1, 12, days)
    if current_quarter == 1:
        quarter_start = datetime.date(year, 1, 1)
        _, days = calendar.monthrange(year, 3)
        quarter_end = datetime.date(year, 3, days)
    elif current_quarter == 2:
        quarter_start = datetime.date(year, 4, 1)
        _, days = calendar.monthrange(year, 6)
        quarter_end = datetime.date(year, 6, days)
    elif current_quarter == 3:
        quarter_start = datetime.date(year, 7, 1)
        _, days = calendar.monthrange(year, 9)
        quarter_end = datetime.date(year, 9, days)
    return quarter_start, quarter_end

标签:python,起止日期,一季度,days,datetime,current,year,date,quarter
From: https://www.cnblogs.com/rong-z/p/16981870.html

相关文章

  • 7.python-函数练习2
    定义函数,将列表中大于某个值的元素设置为None"""定义函数,将列表中大于某个值的元素设置为None参数结......
  • Python3实现自动发送邮件
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • Python时间处理常用模块及用法详解!
    Python中最常用的三个处理时间的模块为:time模块、datetime模块和calendar模块,本文为大家详细介绍一下这三个时间处理模块以及它们的基础用法,希望对你们有帮助。1.t......
  • 【脚本项目源码】Python制作艺术签名生成器,打造专属你的个人艺术签名
    前言本文给大家分享的是如何通过利用Python制作艺术签名生成器,废话不多直接开整~开发工具Python版本:3.6相关模块:requests模块PIL模块PyQt5模块环境搭建安装Pytho......
  • 【Python 68个内置函数】
    内置函数就是Python给你提供的,拿来直接用的函数,比如print,input等。截止到python版本3.6.2,一共提供了68个内置函数,具体如下:abs()dict()help()......
  • 【Python内置函数map和zip+上下文管理器及其实现原理】
    一、map作用map:自动将可迭代对象遍历,把遍历出来的数据,当成参数传入map第一个接口的函数中,将函数执行的结果,放到一个迭代器中进行返回语法map(function,iterable,...)第......
  • 超全!Python图形界面框架PyQt5使用指南!
    使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。......
  • python扩展包依赖管理
    日常开发中我们会用piplist查看安装了哪些包,直接以列表的形式展示给你,但是你知道某个包依赖于其它哪些包吗?或者你想删除一个包,它对应的依赖包会被同步删除吗?如果你有这些......
  • python能干什么?
    学完Python之后,可以从事以下工作岗位:1、web开发:Python拥有非常完善的与web服务器进行交互的库,以及大量免费前端网页模板,有非常优秀而且成熟的diangoWEB框架,功能齐全。2、Lin......
  • Python爬虫采集搞笑段子示例
    对于爬虫的用处不同的人有不同的看法,对于我而言,他是一门技能也是一门艺术,只有掌握其中的原理,才能让你体会到真正的快乐。下文就是我用python爬虫爬取搞笑段子的实例可以一起......