我在日历地狱中,我希望那里有一个 Python 模块可以满足我的需求。
我正在制作一个处理订阅的 Python Web 应用程序。它在概念上类似于手机计划:您在某个日期(例如1.13.2011
)开始订阅,并且对于每个计费月,您都有一堆“会话”(电话),您需要为此付费。
我们要:
- 了解每个会话属于哪个计费月份。
- 了解每个计费月份的开始时间和结束时间。
例如,如果您在 上注册1.13.2011
,并在 上打了一个电话1.20.2011
,它将计入您的第一个帐单月份。打电话也是一样2.10.2011
。但是,如果您要在 上拨打电话2.15.2011
,它将计入您的第二个帐单月份。
关于开始和结束日期:如果今天是2.15.2011
,则当月的开始日期是2.13.2011
,结束日期是3.13.2011
。
您可能会认为这并不复杂,但是您必须考虑到月份有不同的长度。处理此问题的规则是,如果您的订阅从任何月份的 30 日开始,则每个月的截止日期将为min(30, n_days_in_that_month)
. 这也适用于 29、30 和 31。
我尝试对此进行编码,但它太复杂了。我正在寻找的是一个现成的、现有的模块来做这些事情。
看在上帝的份上,不要发布带有实施草图的答案!这对我没用。我感谢您的意图,但在日历地狱中,实现草图无济于事。我已经有了一个实现的草图,调试你的和调试我的一样长。
我只对使用处理此类日历任务的现有模块感兴趣。你认识一个吗?