def getBetweenMonth(begin_date, end_date=None):
date_list = []
begin_date = datetime.datetime.strptime(begin_date, "%Y%m%d")
print(begin_date)
end_date = end_date if end_date else datetime.datetime.strptime(
time.strftime('%Y%m%d', time.localtime(time.time())), "%Y%m%d")
while begin_date <= end_date:
date_str = begin_date.strftime("%Y-%m")
date_list.append(date_str)
begin_date = add_months(begin_date, 1)
return date_list
def add_months(dt, months):
month = dt.month - 1 + months
year = int(dt.year + month / 12)
month = int(month % 12 + 1)
day = min(dt.day, calendar.monthrange(year, month)[1])
return dt.replace(year=year, month=month, day=day)
def get_quarter(month_list):
根据月份获取季度
:param month_list: ['2018-11', '2018-12']
:return:日期所在季度月末值
quarter_list = []
for value in month_list:
temp_value = value.split("-")
if temp_value[1] in ['01', '02', '03']:
quarter_list.append(temp_value[0] + "0331")
elif temp_value[1] in ['04', '05', '06']:
quarter_list.append(temp_value[0] + "0630")
elif temp_value[1] in ['07', '08', '09']:
quarter_list.append(temp_value[0] + "0930")
elif temp_value[1] in ['10', '11', '12']:
quarter_list.append(temp_value[0] + "1231")
quarter_set = set(quarter_list)
quarter_list = list(quarter_set)
quarter_list.sort()
return quarter_list
def getBetweenQuarter(begin_date, end_date=None):
获取两个时间之间的季度时间
:param begin_date: 起始时间
:param end_date: 默认当前时间
:return: 日期所在季度月末值
month_list = getBetweenMonth(begin_date, end_date)
quarter_list = get_quarter(month_list)
return quarter_list
def getNearQuarter(begin_date, num=1):
获取临近几个季度的截止时间
:param begin_date: 起始时间
:param num: 正整数向将来推 默认:下一个季度
:return: 日期所在季度月末值
month_list = []
begin_date = datetime.datetime.strptime(begin_date, "%Y%m%d")
begin_date_ = add_months(begin_date, 3 * num)
date_str = begin_date_.strftime("%Y-%m")
month_list.append(date_str)
quarter_list = get_quarter(month_list)
return quarter_list
def getQuarterFirstDay(date_str):
获取本季度第一天
:param date_str:
:return:日期所在季度第一天
date = datetime.datetime.strptime(date_str, "%Y%m%d")
quarter_start_day = datetime.date(date.year, date.month - (date.month - 1) % 3, 1)
return quarter_start_day.isoformat()
def getQuarterLastDay(date_str):
本季度最后一天
:param date_str:
:return: 日期所在季度最后一天
from dateutil.relativedelta import relativedelta # 引入新的包
date = datetime.datetime.strptime(date_str, "%Y%m%d")
quarter_end_day = datetime.date(date.year, date.month - (date.month - 1) % 3 + 2, 1) + relativedelta(months=1,
days=-1)
return quarter_end_day.isoformat()
if __name__ == '__main__':
begin_date = '20181121'
quarter_list = getBetweenQuarter(begin_date, end_date=None)
# quarter_list = getNearQuarter(begin_date)
print(quarter_list)
date_str = '20180630'
# print(getQuarterFirstDay(date_str))
# print(getQuarterLastDay(date_str))
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。
【本文对您有帮助就好】
元
RedisUtil工具类
在Redis中数据都是以key-value的形式存储的,key规定只能是string类型的,所以我们
缓存技术相关
redis-server.exe 服务器启动命令
redis-cli.exe 命令行客户端
定义一个时间类 Time,它能表示 24 小时制的时、分、秒,具体要求如下
(20 分) 定义一个时间类 Time,它能表示 24 小时制的时、分、秒,具体要求如下:
java正则表达式 过滤特殊字符的正则表达式
java正则表达式 过滤特殊字符的正则表达式
安装DB2
安装DB2
Linux扩容分区
Linux扩容分区
输出相关路径
输出相关路径
输出当前目录下所有文件名到指定文件中
输出当前目录下所有文件名到指定文件中
删除命令参数说明
删除命令参数说明
删除前3天、前30天、前7天的文件
删除前3天、前30天、前7天的文件
多线程工作处理
多线程工作处理、多线程工作处理简单实现类、多线程工作处理接口
压缩jsp,html中的代码,去掉所有空白符、换行符
压缩jsp,html中的代码,去掉所有空白符、换行符
压缩、解压缩工具类
压缩、解压缩工具类
二维码工具类
二维码工具类、支付二维码
缓存工具类 缓存名创建后即使移除缓存,也不会重新创建
缓存工具类 缓存名创建后即使移除缓存,也不会重新创建
json工具类
json工具类
常量资源文件工具类
常量资源文件工具类
资源文件工具类
资源文件工具类
处理查询结果后分页排序类
处理查询结果后分页排序类
html解析工具类、html表格解析解析工具类
html解析工具类、爬虫、html表格解析解析工具类、webClient工厂
金融业务 (4)
教育资料 (10)
Java (901)
C++ (86)
C# (215)
Python (9022)
Oracle (911)
SqlServer (681)
MySql (600)
DB2 (33)
PostgreSql (23)
Tomcat (825)
Weblogic (12)
Windows (214)
Linux (647)
VMware (32)
Ubuntu (194)
ASP.NET (198)
Android (681)
IOS (75)
Hive (45)
Hadoop (50)
Hbase (9)
Spark (4)
redis (78)
PHP (145)
Jquery (174)
Javascript (168)
NoSQL (6)
CSS (127)
资料下载 (25)
交易系统 (9)
java工具类 (32)
其它 (7)
秕处理 (4)