欢迎来到夜的世界

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生.料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。
扩大
缩小

日期获取

1.获取时间段内的所有日期 

def dateRange(beginDate, endDate):
    dates = []
    dt = datetime.datetime.strptime(beginDate, "%Y-%m-%d")
    date = beginDate[:]
    while date <= endDate:
        dates.append(date)
        dt = dt + datetime.timedelta(1)
        date = dt.strftime("%Y-%m-%d")
    return dates


beginDate = "2020-02-01"
endDate = "2020-02-29"

dateRange(beginDate, endDate)

2.获取上月周五所有日期

def get_last_month_one_weekday(date, day_of_week):
    last_month_thus = []
    date = datetime.datetime.strptime(date, "%Y-%m-%d")
    year = int(date.strftime("%Y"))
    now_month = int(date.strftime("%m"))
    if now_month == 1:
        last_month = 12
        year -= 1
    else:
        last_month = now_month - 1

    last_month_last_day = calendar.monthrange(year, last_month)[1]
    print(last_month_last_day)

    for i in range(1, 8):
        iday = datetime.datetime.strptime(
            (str(year) + "-" + str(last_month) + "-" + str(i)), '%Y-%m-%d')
        if iday.weekday() == day_of_week:  # 0-6,周一到周末,可根据需要自行调整
            first_weekday = int(iday.strftime("%d"))
            last_month_thus.append(iday.strftime("%Y-%m-%d"))
            break

    while first_weekday <= last_month_last_day - 7:
        first_weekday += 7
        last_month_thus.append(datetime.datetime.strptime(
            (str(year) + "-" + str(last_month) + "-" + str(first_weekday)), '%Y-%m-%d').strftime("%Y-%m-%d"))

    return last_month_thus


date = "2020-03-19"
get_last_month_one_weekday(date,6)

3.获取上周五日期

def last_friday_date(date):
    date = datetime.datetime.strptime(date, "%Y-%m-%d")
    last_friday = date - datetime.timedelta(days=date.weekday() + 3)
    last_friday = last_friday.strftime("%Y-%m-%d")
    return last_friday


date = "2020-02-19"
last_friday_date(date)

4.获取上上周五日期 

def getfilname(date):
    date = datetime.datetime.strptime(date, "%Y-%m-%d")
    l_last_friday = date - datetime.timedelta(days=date.weekday() + 10)
    l_last_friday = l_last_friday.strftime("%Y-%m-%d")
    return l_last_friday


date = "2020-03-19"
getfilname(date)

5.本周一 到 现在的日期

 

def this_week(date):
    now = datetime.datetime.strptime(date, "%Y-%m-%d")
    day = now.weekday()
    li_time = []
    num = 0
    while day >= num:
        week = now + datetime.timedelta(days=num - now.weekday())
        week2 = datetime.datetime.strftime(week, "%Y-%m-%d")
        li_time.append(week2)
        num = num + 1
    return li_time



date = "2020-03-19"
this_week(date)

 

6.上周一到上周五日期

 

def last_week(date):
    date = datetime.datetime.strptime(date, "%Y-%m-%d")
    last_week_1 = (date - datetime.timedelta(days=date.weekday() + 7)).strftime("%Y-%m-%d")
    last_week_2 = (date - datetime.timedelta(days=date.weekday() + 6)).strftime("%Y-%m-%d")
    last_week_3 = (date - datetime.timedelta(days=date.weekday() + 5)).strftime("%Y-%m-%d")
    last_week_4 = (date - datetime.timedelta(days=date.weekday() + 4)).strftime("%Y-%m-%d")
    last_week_5 = (date - datetime.timedelta(days=date.weekday() + 3)).strftime("%Y-%m-%d")
    last_week_list = [last_week_1, last_week_2, last_week_3, last_week_4, last_week_5]
    return last_week_list

date = "2020-03-19"
last_week(date)

 

7.判断是否是闰年 


from calendar import isleap
def how_many_days(date):
    patt = '(\d+)-(\d+)-(\d+)'
    # 取年份,变成int类型
    date = int(re.search(patt, date).group(1))
    if isleap(date) == True:
        print("%s是闰年!" % (date,))
        return 366
    else:
        print("%s不是闰年!" % (date,))
        return 365



date = "2020-03-19"
how_many_days(date)

8.与当前日期相差几个月

import datetime

def str2datetime(dic):
    # 获取当前时间 str
    year = datetime.datetime.now().strftime('%Y-%m-%d')
    # str--->datetime.datetime
    year2 = datetime.datetime.strptime(year, "%Y-%m-%d")
    dic_date_cha = {}
    for k_name, date in dic.items():
        date = datetime.datetime.strptime(date, "%Y-%m-%d")
        # 获取日期直接的差
        date_cha = (year2 - date).days
        # 变成月差,余数1位
        # date_cha = round(date_cha / 30, 1)
        date_cha = date_cha / 30
        dic_date_cha[k_name] = date_cha

    return dic_date_cha

dic = {
    "A":"2020-01-01",
    "B":"2020-01-02",
    "C":"2020-01-03",
    "D":"2020-02-05",
    "E":"2020-03-06",
    "F":"2020-04-03",
    "G":"2020-05-07",
    "H":"2020-06-23",
    "I":"2020-07-30",
    "J":"2020-08-09",
    "K":"2020-09-02",
    "L":"2020-10-03",
    "M":"2020-11-03",

}

ret = str2datetime(dic)
print(ret)


### 
{'A': 2.6, 'B': 2.566666666666667, 'C': 2.533333333333333, 'D': 1.4333333333333333, 'E': 0.43333333333333335, 'F': -0.5, 'G': -1.6333333333333333, 'H': -3.2, 'I': -4.433333333333334, 'J': -4.766666666666667, 'K': -5.566666666666666, 'L': -6.6, 'M': -7.633333333333334}

#### 
执行的日期是 2020-03-19

 

posted on 2020-03-19 11:05  二十四桥_明月夜  阅读(253)  评论(0编辑  收藏  举报

导航