python如何判断季度_从python中的datetime对象中查找年份和季度

鉴于某个日期,我要求找到完成的季度(从1月到12月的1到4).请注意,它不是当前季度,而是完成的季度.我的意思是,如果1月1日是输入日期,那么完成的季度是4而不是1.我的小代码片段如下:

>>> import datetime

>>> import math

>>> now = datetime.datetime(2015, 1, 1, 0, 0, 0, 0)

>>> present_quarter = int(math.ceil(now.month/3.))

>>> completed_quarter = (present_quarter - 1) if present_quarter != 1 else 4

>>> completed_quarter

4

然而,我需要的是年份,所以输出是:

2014-4

做这个的最好方式是什么 ?输出是否仍然是一个日期时间对象而不是一个字符串,我的意思是Python支持像Year-Quarter这样的日期时间对象

解决方法:

您可以简单地将月份映射到季度和年度增量(您需要去年第四季度):

def completed_quarter(dt):

prev_quarter_map = ((4, -1), (1, 0), (2, 0), (3, 0))

quarter, yd = prev_quarter_map[(dt.month - 1) // 3]

return (dt.year + yd, quarter)

这会将月份转换为0到3之间的值,然后将其转换为四分之一数字和年份增量.将年度增量添加到当前年份可为您在上一季度完成的年份提供正确的年份.

演示:

>>> def compl

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值