gpt4 book ai didi

python-2.7 - 在 Python 中获取当前季度的第一个日期和最后一个日期?

转载 作者:行者123 更新时间:2023-12-02 05:58:43 25 4
gpt4 key购买 nike

如何在 Python 中获取当前季度年度,然后是当前季度年度的第一个日期和最后一个日期?

我想通过导入日期时间

import datetime

人们研究堆栈溢出需要直接的答案,这应该非常简单。您提供的哪个链接有很多评论。因此,用户必须浏览所有评论才能找到正确答案。我正在写简单而直接的答案。

最佳答案

我相信当前的答案在 Python 3 中都仍然有效,因此由于这是 google 季度第一天和最后一天的热门话题,我将提供一个适用于 Python 3 的解决方案(主要是 Ahmet 使用//而不是/):

from datetime import date as date_class
from datetime import timedelta, datetime


def get_quarter(p_date: date_class) -> int:
return (p_date.month - 1) // 3 + 1


def get_first_day_of_the_quarter(p_date: date_class):
return datetime(p_date.year, 3 * ((p_date.month - 1) // 3) + 1, 1)


def get_last_day_of_the_quarter(p_date: date_class):
quarter = get_quarter(p_date)
return datetime(p_date.year + 3 * quarter // 12, 3 * quarter % 12 + 1, 1) + timedelta(days=-1)


assert get_quarter(datetime(year=2021, month=10, day=5).date()) == 4
assert get_quarter(datetime(year=2020, month=9, day=25).date()) == 3
assert get_quarter(datetime(year=2020, month=12, day=11).date()) == 4
assert get_quarter(datetime(year=2020, month=1, day=2).date()) == 1

assert get_first_day_of_the_quarter(datetime(2020, 10, 5).date()) == datetime(2020, 10, 1)
assert get_first_day_of_the_quarter(datetime(2020, 9, 25).date()) == datetime(2020, 7, 1)
assert get_first_day_of_the_quarter(datetime(2020, 12, 11).date()) == datetime(2020, 10, 1)
assert get_first_day_of_the_quarter(datetime(2020, 1, 2).date()) == datetime(2020, 1, 1)

assert get_last_day_of_the_quarter(datetime(2020, 10, 5).date()) == datetime(2020, 12, 31)
assert get_last_day_of_the_quarter(datetime(2020, 9, 25).date()) == datetime(2020, 9, 30)
assert get_last_day_of_the_quarter(datetime(2020, 12, 11).date()) == datetime(2020, 12, 31)
assert get_last_day_of_the_quarter(datetime(2020, 1, 2).date()) == datetime(2020, 3, 31)
assert get_last_day_of_the_quarter(datetime(2020, 5, 6).date()) == datetime(2020, 6, 30)

关于python-2.7 - 在 Python 中获取当前季度的第一个日期和最后一个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37135699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com