有没有办法在输入月份和年份时生成特定月份的所有日期?
我有
daterange = date_range(date1, date2)
dates=[]
for x in daterange:
dates.append((x.strftime('%Y-%m-%d')))
使用pandas,但我如何计算不同的月份长度?
答案 0 :(得分:3)
您可以使用pd.offsets.MonthBegin
,然后使用结束独占日常日期范围:
dts = pd.date_range(month_start, month_start + pd.offsets.MonthBegin(1), closed="left")
答案 1 :(得分:0)
您可以使用日历模块执行此操作:
import calendar
date_of_first_weekday, number_days_in_month = calendar.monthrange(year, month)
答案 2 :(得分:0)
calendar
模块可满足您的所有需求:
import calendar
first_weekday, month_days = calendar.monthrange(year, month)
for mday in xrange(1, month_days + 1):
print mday
答案 3 :(得分:0)
我发现我无法在我的系统上导入calendar
,所以这里只有datetime
解决方案:
from datetime import date, timedelta
month, year = 2, 2008
day = timedelta(days=1)
date1 = date(year, month, 1)
dates = []
d = date1
while d.month == month:
dates.append(d)
d += day
(创建2008年2月的日期列表,即闰年)。如果您想要日期的字符串表示,可以使用:
from datetime import timedelta, datetime
month, year = 2, 2008
day = timedelta(days=1)
date1 = datetime(year, month, 1)
d = date1
dates = []
while d.month == month:
dates.append(d.strftime('%Y-%m-%d'))
d += day