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

python 专栏收录该内容
8 篇文章 0 订阅

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

import datetime
import calendar

weekDateList = [['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
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值