展开全部
# 文字版:
# -*- coding: utf-8 -*-
# 辅助2113函数:把月和日转化成5261小数格式,4102方便比较。比如六月三日就转化成6.3
def md2f(m,d):
return (m) + (d)*0.1
# 这个函数用来1653截取需要的时间段
def getDateRange(dates,startMonth,startDate,endMonth,endDate):
rangedDates = {} #先定义一个空字典,过会把符合要求的值都添进去
for k in dates.keys(): #用一个loop,把原本字典里所有的内容都检查一遍
y = int(k.split("/")[0]) #从“年/月/日“的格式里面提取出y=年、m=月、d=日
m = int(k.split("/")[1])
d = int(k.split("/")[2])
# 进行比较,如果月、日符合所给定的时间段,那就把这一项添到新字典里去
if md2f(startMonth,startDate) < md2f(m,d) < md2f(endMonth,endDate):
rangedDates[k] = dates[k]
return rangedDates # 返回新字典,这里面就是所有符合时间段的日期了。
sampleDates = {"1984/2/10":1,"1984/5/15":9,"1984/6/16":3,"1984/9/12":6,"1984/11/12":8,"1985/8/1":7}
print getDateRange(sampleDates,6,1,10,1) #调用函数,找到六月一号到十月一号之间的日期