Python, 빠른 요일/주말 검사 함수 

 

글. 수알치 오상문

 

# 요일을 알려주는 함수
# 입력 y:연도, m:월, d:일 
# 반환 0=일요일, 1=월요일, ..., 6=토요일 
def chk_dayofweek(y, m, d):
    t = [0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4] 
    y -= m < 3; 
    return (y + y//4 - y//100 + y//400 + t[m-1] + d) % 7
# 주말(토/일)인지 검사하는 함수 
# 입력 y:연도, m:월, d:일 
# 반환 1:일요일/토요일, 0:평일 
def chk_weekend(y, m, d):
    t = [0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4] 
    y -= m < 3; 
    chk = (y + y//4 - y//100 + y//400 + t[m-1] + d) % 7
    return 1 if chk==0 or chk==6 else 0
DayOfTheWeek = ['일', '월', '화', '수', '목', '금', '토', '일']
# 테스트 ------------------------------------
year = 2022  # 연도
month = 6    # 월 
# 날짜별 출력 
for day in range(1, 31):
    print(f"{year}년 {month}월 {day}일", end=" : ")
    print(DayOfTheWeek[chk_dayofweek(year, month, day)], end=" : ")
    print("야호, 주말!!!" if chk_weekend(year, month, day) else "")

 

[실행 결과]

22022년 6월 1일 : 수 : 
2022년 6월 2일 : 목 : 
2022년 6월 3일 : 금 : 
2022년 6월 4일 : 토 : 야호, 주말!!!
2022년 6월 5일 : 일 : 야호, 주말!!!
2022년 6월 6일 : 월 : 
2022년 6월 7일 : 화 : 
2022년 6월 8일 : 수 : 
2022년 6월 9일 : 목 : 
2022년 6월 10일 : 금 : 
2022년 6월 11일 : 토 : 야호, 주말!!!
2022년 6월 12일 : 일 : 야호, 주말!!!
2022년 6월 13일 : 월 : 
2022년 6월 14일 : 화 : 
2022년 6월 15일 : 수 : 
2022년 6월 16일 : 목 : 
2022년 6월 17일 : 금 : 
2022년 6월 18일 : 토 : 야호, 주말!!!
2022년 6월 19일 : 일 : 야호, 주말!!!
2022년 6월 20일 : 월 : 
2022년 6월 21일 : 화 : 
2022년 6월 22일 : 수 : 
2022년 6월 23일 : 목 : 
2022년 6월 24일 : 금 : 
2022년 6월 25일 : 토 : 야호, 주말!!!
2022년 6월 26일 : 일 : 야호, 주말!!!
2022년 6월 27일 : 월 : 
2022년 6월 28일 : 화 : 
2022년 6월 29일 : 수 : 
2022년 6월 30일 : 목 : 

반응형

+ Recent posts