有没有功能来确定日期在一年中的哪个季度?
问题描述
我当然可以自己写,但是在我重新发明轮子之前,有没有函数已经这样做了?
解决方案
给定x
datetime.date的实例,(x.month-1)//3
将得到季度(第一季度为0,第二季度为1,以此类推--如果需要从1开始计数,则加1;-)。
原来有两个答案,倍增了,甚至是原来接受的(现在都删除了),都有问题--除法前不做-1
,而是除以4而不是3。因为.month
是1到12,所以很容易自己检查哪个公式是正确的:
for m in range(1, 13):
print m//4 + 1,
print
给出1 1 1 2 2 2 2 3 3 3 3 4
--两个四个月季度和一个单月季度(EEP)。
for m in range(1, 13):
print (m-1)//3 + 1,
print
给予1 1 1 2 2 2 3 3 3 4 4 4
--您现在看起来是不是非常喜欢这个?-)
我认为这证明这个问题是有根据的;-)。
我不认为DateTime模块应该具有每一个可能有用的日历函数,但我知道我维护了一个(经过良好测试的;-)datetools
模块,用于我的(和其他人的)项目,它有许多小函数来执行所有这些日历计算--有些很复杂,有些很简单,但是没有理由反复做这些工作(即使是简单的工作),或者在这样的计算中冒错误的风险;-)。
相关文章