使用 Python 获取当前月份的所有日期
Get all dates of current month using Python
我想像这样打印当月的所有日期
2019-06-1
2019-06-2
2019-06-3
2019-06-4
2019-06-5
...
2019-06-28
2019-06-29
2019-06-30
如何在 python 中完成?
您可以使用 datetime
:
from datetime import date, timedelta
d1 = date(2019, 6, 1)
d2 = date(2019, 6, 30)
delta = d2 - d1
for i in range(delta.days + 1):
print(d1 + timedelta(days=i))
改进代码并使其独立于用户规范:
from datetime import date, timedelta, datetime
import calendar
def all_dates_current_month():
month = datetime.now().month
year = datetime.now().year
number_of_days = calendar.monthrange(year, month)[1]
first_date = date(year, month, 1)
last_date = date(year, month, number_of_days)
delta = last_date - first_date
return [(first_date + timedelta(days=i)).strftime('%Y-%m-%d') for i in range(delta.days + 1)]
all_dates_current_month()
你得到:
['2019-06-01',
'2019-06-02',
'2019-06-03',
'2019-06-04',
'2019-06-05',
'2019-06-06',
'2019-06-07',
'2019-06-08',
'2019-06-09',
'2019-06-10',
'2019-06-11',
'2019-06-12',
'2019-06-13',
'2019-06-14',
'2019-06-15',
'2019-06-16',
'2019-06-17',
'2019-06-18',
'2019-06-19',
'2019-06-20',
'2019-06-21',
'2019-06-22',
'2019-06-23',
'2019-06-24',
'2019-06-25',
'2019-06-26',
'2019-06-27',
'2019-06-28',
'2019-06-29',
'2019-06-30']
calendar.monthrange
会告诉您该月有多少天(考虑闰年等)。从那里开始,您将需要一堆脚手架来创建范围:
from calendar import monthrange
def allDays(y, m):
return ['{:04d}-{:02d}-{:02d}'.format(y, m, d) for d in range(1, monthrange(y, m)[1] + 1)]
我想像这样打印当月的所有日期
2019-06-1
2019-06-2
2019-06-3
2019-06-4
2019-06-5
...
2019-06-28
2019-06-29
2019-06-30
如何在 python 中完成?
您可以使用 datetime
:
from datetime import date, timedelta
d1 = date(2019, 6, 1)
d2 = date(2019, 6, 30)
delta = d2 - d1
for i in range(delta.days + 1):
print(d1 + timedelta(days=i))
改进代码并使其独立于用户规范:
from datetime import date, timedelta, datetime
import calendar
def all_dates_current_month():
month = datetime.now().month
year = datetime.now().year
number_of_days = calendar.monthrange(year, month)[1]
first_date = date(year, month, 1)
last_date = date(year, month, number_of_days)
delta = last_date - first_date
return [(first_date + timedelta(days=i)).strftime('%Y-%m-%d') for i in range(delta.days + 1)]
all_dates_current_month()
你得到:
['2019-06-01',
'2019-06-02',
'2019-06-03',
'2019-06-04',
'2019-06-05',
'2019-06-06',
'2019-06-07',
'2019-06-08',
'2019-06-09',
'2019-06-10',
'2019-06-11',
'2019-06-12',
'2019-06-13',
'2019-06-14',
'2019-06-15',
'2019-06-16',
'2019-06-17',
'2019-06-18',
'2019-06-19',
'2019-06-20',
'2019-06-21',
'2019-06-22',
'2019-06-23',
'2019-06-24',
'2019-06-25',
'2019-06-26',
'2019-06-27',
'2019-06-28',
'2019-06-29',
'2019-06-30']
calendar.monthrange
会告诉您该月有多少天(考虑闰年等)。从那里开始,您将需要一堆脚手架来创建范围:
from calendar import monthrange
def allDays(y, m):
return ['{:04d}-{:02d}-{:02d}'.format(y, m, d) for d in range(1, monthrange(y, m)[1] + 1)]