到当前日期的每周一和周日、每月第一天和最后一天日期的获取

来源:互联网 发布:域名被墙跳转 编辑:程序博客网 时间:2024/05/20 03:45

由于项目的运营报表有新需求,而且之间一直用node.js来做,在操作数据库上不是很方便。所以现在我转成了用python来做运行报表,跟node.js比起来,感觉python不止方便了一点。下面两个方法,其功能如下:
1.通过某一周的周一和周日的日期,获取这一周到目前每周周一和周末的日期,以字符串的格式存在一个二维列表中
2.通过某一月的第一天和最后一天的日期,获取这一月到目前每月第一天和最后一天的日期,以字符串的格式存在一个二维列表中

import datetimeimport calendarweekDateList = [['2017-05-01', '2017-05-07']]  # 存储从2017-05-01起到目前每周一和周末的日期MonthDateList = [['2017-05-01', '2017-05-31']]  # 存储从2017-05-01起到上月每月第一天一和最后一天周末的日期nowdate = datetime.datetime.now()def getDate(dateStr):  #  返回datetime格式的日期    year = int(dateStr[0:4])    month = int(dateStr[5:7])    day = int(dateStr[8:10])    return datetime.datetime(year, month, day)def getWeekDateList(List):    firstdate = getDate(List[-1][0])    lastdate = getDate(List[-1][1])    date2 = lastdate + datetime.timedelta(days=7)  # 周末    while date2 > nowdate:        break    else:        date1 = firstdate + datetime.timedelta(days=7)  # 周一        List.append([date1.strftime('%Y-%m-%d'),  date2.strftime('%Y-%m-%d')])        getWeekDateList(List)def getMonthDateList(List):    lastdate = getDate(List[-1][1])    days = calendar.monthrange(lastdate.year, lastdate.month+1)[1]  # 获取下个月的天数    date2 = lastdate + datetime.timedelta(days=days)  # 月末    while date2 > nowdate:        break    else:        date1 = lastdate + datetime.timedelta(days=1)  # 月初        List.append([date1.strftime('%Y-%m-%d'),  date2.strftime('%Y-%m-%d')])        getMonthDateList(List)getWeekDateList(weekDateList)for i in weekDateList:    print(i)print("----------------------------------------")getMonthDateList(MonthDateList)for i in MonthDateList:    print(i)

运行结果如下:
每周日期:
这里写图片描述
每月日期:
这里写图片描述

另:当前的日期是2017/12/14

阅读全文
0 0