(b_datedays):
day = datetime.timedelta(=)
i (days):
b_date + day * i
(start_date=end_date=):
(start_datedatetime.datetime) (end_datedatetime.datetime):
start = start_date
end = end_date
:
start = datetime.datetime.strptime(start_date)
end = datetime.datetime.strptime(end_date)
end = end + datetime.timedelta(=)
data = []
d gen_dates(start(end - start).days):
data.append(d.strftime())
data
ParseDate(TimeSpecType):
DaysOneWeek = DaysOneWeek
DaysOneMonth = DaysOneMonth ():
.__choices__ = (
(.day.parse_date_by_day)(.week.parse_date_by_week)(.month.parse_date_by_month)
)
(value):
_names = ((e[]e[]) e .__choices__)
_names.get(value) (value):
_names = ((e[]e[]) e .__choices__)
_names.get(value) (start_dateend_date):
weeklist = []
(start_datedatetime.datetime) (end_datedatetime.datetime):
start = start_date
end = end_date
:
start = datetime.datetime.strptime(start_date)
end = datetime.datetime.strptime(end_date)
max_timedelta = end - start
max_weeks = (math.ceil(max_timedelta.days / .DaysOneWeek) + ) first_start_week_day = start.weekday()
first_week_sunday = start + datetime.timedelta(=(.DaysOneWeek - first_start_week_day - )) first_week_sunday >= end:
temp = {: start: end}
weeklist.append(temp)
weeklist
:
temp = {: start: first_week_sunday}
weeklist.append(temp)
i (max_weeks):
monday = first_week_sunday + datetime.timedelta(==i)
sunday = monday + datetime.timedelta(=)
monday >= end:
temp = {: monday: end}
weeklist.append(temp)
sunday <= end:
temp = {: monday: sunday}
weeklist.append(temp)
:
temp = {: monday: end}
weeklist.append(temp)
weeklist
(start_dateend_date):
monthlist = []
(start_datedatetime.datetime) (end_datedatetime.datetime):
start = start_date
end = end_date
:
start = datetime.datetime.strptime(start_date)
end = datetime.datetime.strptime(end_date)
max_timedelta = end - start
max_months = (math.ceil(max_timedelta.days / .DaysOneMonth) + ) first_month = start.month first_year = start.year firstDayWeekDaymonthlen = calendar.monthrange(first_yearfirst_month)
last_day_of_first_month = datetime.datetime(=first_year=first_month=monthlen) last_day_of_first_month >= end:
temp = {: start: end}
monthlist.append(temp)
monthlist
:
temp_first_day = last_day_of_first_month + datetime.timedelta(=)
temp = {: start: last_day_of_first_month}
monthlist.append(temp)
i (max_months):
year = temp_first_day.year
month = temp_first_day.month
firstDayWeekDaymonthRange = calendar.monthrange(yearmonth)
temp_last_day = datetime.datetime(=year=month=monthRange)
temp_first_day >= end:
temp = {: temp_first_day: end}
monthlist.append(temp)
temp_last_day <= end:
temp = {: temp_first_day: temp_last_day}
monthlist.append(temp)
temp_first_day = temp_last_day + datetime.timedelta(=)
:
temp = {: temp_first_day: end}
monthlist.append(temp)
monthlist
(start_dateend_date):
daylist = []
days = get_date_list(start_dateend_date)
day days:
day_datetime = datetime.datetime.strptime(day)
temp = {: day_datetime: day_datetime}
daylist.append(temp)
daylist
分享标题:python根据开始结束日期解析获得日周月
转载来源:
http://cdweb.net/article/gcsice.html