有用的业务日期范围
DateRanger的Python项目详细描述
安装
目前,DateRanger仍在开发中。
它可以通过github和pip安装。
通过github安装
pip install git+https://github.com/spitfire-sidra/DateRanger
通过PIP安装
pip install --pre DateRanger
用法
日期框架
DateFrame帮助您计算日期范围内的天数、周数、季度数或年数。
它还可以在日期范围内显示每天、每周、每月、季度。
示例代码:
计算日期范围内的天数、周数、月数、季数或年数。
>>>fromdatetimeimportdate>>>fromDateRanger.objectsimportDateFrame>>>>>>df=DateFrame(date(2014,11,1),date(2014,12,20))>>>df.days()# There are 49 days between date(2014, 11, 1) and date(2014, 12, 20)49>>>df.weeks()# There are 7 weeks between date(2014, 11, 1) and date(2014, 12, 20)7>>>df.months()1>>>df.quarters()0>>>df.years()0
在日期范围内每天、每周、每月、季度或年产生收益。
>>>fromdatetimeimportdate>>>fromDateRanger.objectsimportDateFrame>>>>>>df=DateFrame(date(2014,11,30),date(2014,12,2))>>>days=[dayfordayindf.each_day()]>>>days[datetime.date(2014,11,30),datetime.date(2014,12,1),datetime.date(2014,12,2)]>>>>>>weeks=[weekforweekindf.each_week()]# 2 weeks>>>weeks# 2 tuples in a list[(datetime.date(2014,11,23),datetime.date(2014,11,29)),(datetime.date(2014,11,30),datetime.date(2014,12,6))]
其他有用的方法
>>>df.days()>>>df.weeks()>>>df.months()>>>df.quarters()>>>df.years()>>>>>>df.each_day()>>>df.each_week()>>>df.each_month()>>>df.each_quarter()>>>df.each_years()>>>df.get_range()
约会者
要使用此模块,首先需要设置基日期。基准日期可以是过去、现在和将来的任何日期。默认基日期是当前日期,即今天(date.today())。根据给定的日期,此模块帮助我们查找此日期所属的周、季或年。
例如:
如果基日期是datetime.date(2015,1,19),则相对日期范围为:
base_week => datetime.date(2015, 1, 18) ~ datetime.date(2015, 1, 24) The week that contains base_date.
base_month => datetime.date(2015, 1, 1) ~ datetime.date(2015, 1, 31) The month that contains base_date.
base_quarter => datetime.date(2015, 1, 1) ~ datetime.date(2015, 3, 31) The quarter that contains base_date.
base_year => datetime.date(2015, 1, 1) ~ datetime.date(2015, 12, 31) The year that contains base_date.
prev_week => datetime.date(2015, 1, 11) ~ datetime.date(2015, 1, 17) Date range of previous week.
prev_month => datetime.date(2014, 12, 1) ~ datetime.date(2012, 12, 31) Date range of previous month.
next_week => datetime.date(2015, 1, 25) ~ datetime.date(2015, 1, 31) Date range of next week.
next_month => datetime.date(2015, 2, 1) ~ datetime.date(2015, 2, 28) Date range of next month.
示例代码:
>>>fromdatetimeimportdate>>>fromDateRangerimportDateRanger>>>>>>dr=DateRanger(base_date=date(2015,1,1))>>>date_frame=dr.prev_month(2)>>>date_frame<DateRanger.objects.DateFrameobject...>>>>date_frame.weeks()5>>>date_frame.get_range()(datetime.date(2014,11,1),datetime.date(2014,11,30))
其他有用的方法
>>>dr.set_base_date(date)>>>dr.get_base_day()>>>dr.base_week()>>>dr.base_month()>>>dr.base_quarter()>>>dr.base_year()>>>>>>dr.prev_week(...)>>>dr.next_week(...)>>>>>>dr.prev_month(...)>>>dr.next_month(...)>>>>>>dr.prev_quarter(...)>>>dr.next_quarter(...)>>>>>>dr.prev_year(...)>>>dr.next_year(...)>>>>>>dr.from_date(...)>>>dr.to_date(...)
贡献
测试:
python -m unittest discover
此命令执行目录DateRanger/test/下的所有测试用例。