# This is a sample Python script.
# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
def calendar_1():
import calendar
# 년도와 월 입력 받기
year = int(input("연도를 입력하세요(예. 2022) : "))
month = int(input("월을 입력하세요(1~12) : "))
month_dict = {
1: "January",
2: "February",
3: "March",
4: "April",
5: "May",
6: "June",
7: "July",
8: "August",
9: "September",
10: "October",
11: "November",
12: "December",
}
# 달력 생성
cal = calendar.monthcalendar(year, month)
# 달력 출력
print()
print(f" {month_dict[month]} {year}")
print("---------------------------------")
print("Sun Mon Tue Wed Thr Fri Sat")
for week in cal:
for day in week:
if day == 0:
print(" ", end=" ")
else:
print(f"{day:2d} ", end=" ")
print()
def calendar_2():
import calendar
# 년도와 월 입력 받기
year = int(input("연도를 입력하세요(예. 2022) : "))
month = int(input("월을 입력하세요(1~12) : "))
# 월의 영문명 출력
month_name = calendar.month_name[month]
print(f"{month_name} {year}")
# 해당 월의 첫날에 대한 요일값 계산
first_day_weekday = calendar.weekday(year, month, 1)
# 해당 월 캘린더의 시작 요일 만큼 빈 칸 출력
print("---------------------------------")
print("Sun Mon Tue Wed Thr Fri Sat")
print(" " * first_day_weekday, end=" ")
# 해당월의 날짜 출력
for day in range(1, calendar.monthrange(year, month)[1] + 1):
print(f"{day:2}", end=" ")
if (first_day_weekday + day) % 7 == 0:
print()
print()
def calendar_3():
# 년도와 월 입력 받기
year = int(input("연도를 입력하세요(예. 2022) : "))
month = int(input("월을 입력하세요(1~12) : "))
# 1-1. 월의 영문명 출력
month_names = [
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
]
# 월의 변수 생성
# -1을 하는 이유(-1은 배열의 시작이 0부터 카운터가 되어서...)
# 배열로 12칸을 만들면 0~11로 생성됨.
# 입력 변수인 'month'를 5로 받으면 배열은 0부터 시작이니 June으로 출력됨
month_name = month_names[month - 1]
print(f" {month_name} {year}")
# 1-2. 해당 월의 첫날에 대한 요일값 계산
first_day_weekday = (year + (year // 4) - (year // 100) + (year // 400) + ((13 * month + 8) // 5) + 1) % 7
# 해당 월 캘린더의 시작 요일 만큼 빈 칸 출력
print("---------------------------------")
print("Sun Mon Tue Wed Thr Fri Sat")
print(" " * first_day_weekday, end=" ")
# 해당월의 날짜 출력
days_in_month = 31 if month in [1, 3, 5, 7, 8, 10, 12] else 30 if month in [4, 6, 9, 11] else 28
for day in range(1, days_in_month + 1):
print(f"{day:2}", end=" ")
if (first_day_weekday + day) % 7 == 0:
print()
print()
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
calendar_3()
# See PyCharm help at https://www.jetbrains.com/help/pycharm/