相关疑难解决方法(0)

得到(年,月)最后X个月

我在python中有一个非常简单的事情:我需要(year,month)从今天开始(包括)最后x个月的元组列表.因此,对于x = 10和今天(2011年7月),命令应该输出:

[(2011, 7), (2011, 6), (2011, 5), (2011, 4), (2011, 3), 
(2011, 2), (2011, 1), (2010, 12), (2010, 11), (2010, 10)]
Run Code Online (Sandbox Code Playgroud)

只应使用python的默认日期时间实现.我提出了以下解决方案:

import datetime
[(d.year, d.month) for d in [datetime.date.today()-datetime.timedelta(weeks=4*i) for i in range(0,10)]]
Run Code Online (Sandbox Code Playgroud)

这个解决方案为我的测试用例输出了正确的解决方案,但我对这个解决方案不满意:假设一个月有四个星期,这根本不是真的.我可以取代weeks=4days=30这将使一个更好的解决方案,但它仍然是不正确的.

我想到的另一个解决方案是使用简单的数学并从月份计数器中减去1,如果月份计数器为0,则从年份计数器中减去1.这个解决方案的问题是:它需要更多的代码,也不是很易读.

那怎么能正确完成呢?

python datetime

7
推荐指数
3
解决办法
8841
查看次数

标签 统计

datetime ×1

python ×1