import calendar
calendar.calendar(2020)
이렇게 출력하면 -_-;;
스트링으로 된 달력(윈도우에서 보여주는 달력같은 ㅡㅡ) 이 출력됩니다.
이걸 쓰는건 좀 지저분하고 후처리가 복잡해질것 같아서 다른 방법으로 날짜 목록을 출력해보았습니다.
import calendar
month_range = []
for i range(2019, 2022): #year
for j in range(1, 13): #month
final_day = calendar.monthrange(i, j)
month_dict = dict(year=i, month=j, day=final_day[1]) # 각 달의 마지막 날짜를 체크한다
month_range.append(month_dict)
date_list = []
for i in month_range: #년, 월, 일을 한번에
for j in range(i, i["day"]+1): #1일에서 마지막 날짜 까지
# YYYY-MM-DD 형식으로 사용하기 위해서
month = "0" + str(i["month"]) if i["month"] < 10 else str(i["month"])
day = "0" + str(j) if j < 10 else str(j)
day_of_week calendar.weekday(i["year"], i["month"], j) #년 월 일을 이용해서 요일을 숫자로 리턴
date_list.append(dict(date="{}-{}-{}".format(i["year"], month, day), day_of_week=day_of_week))
# 완성된 2019 ~ 2021년 사이의 모든 날짜 목록을 출력
for i in date_list:
print(date_list)
그리고 날짜 계산이 지저분해서 다시 수정
from datetime import datetime, date, timedelta
import calendar
years = datetime.today().year + 2 # 내년 달력까지 뽑아내기 위해서
start_date = date(2004, 1, 1)
end_date(years, 12, 31)
days_delta = end_date - start_date
#날짜 목록
day_list = []
for i in range(delta.days + 1):
day_list.append(start_date + timedelta(days = i)
day_lists_dict = []
for i in days:
str_i = str(i)
day_of_week = calendar.weekday(int(str_i[:4), int(str_i[5:7]), int(str_i[8:)) #요일
day_list_dict.append(dict(date=str_i, day_of_week=day_of_week))
'Python > Python__works' 카테고리의 다른 글
python text compare (0) | 2021.03.31 |
---|---|
PHPSESSID (0) | 2020.12.27 |
dictionary (0) | 2020.10.12 |
mysqlclient (0) | 2020.09.28 |
서버의 로그를 파이썬으로 읽어서 slack으로 전달하기 (0) | 2020.09.24 |