파이썬 라이브러리 calendar.isleap
#006 파이썬 라이브러리 : calendar.isleap 윤년 계산
생일이 2월 29일인 분은 4년마다 찐 생일을 맞이하시겠지요. 엄밀히 말하면, 4년 마다가 아니죠. 100년마다 평년, 400년마다 윤년이 적용되니 좀 더 복잡해집니다.
윤년을 정하는 규칙
우리가 사용 중인 그레고리력에서 윤년을 정하는 규칙은 다음과 같습니다.
- 1. 서력기원 연수가 4로 나누어 떨어지는 해는 윤년으로 한다.
- 2. 서력기원 연수가 4, 100으로 나누어 떨어지는 해는 평년으로 한다.
- 3. 서력기원 연수가 4, 100, 400으로 나누어 떨어지는 해는 윤년으로 둔다.
즉, 윤년은 100으로 나누어 떨어지지만 400으로 나누어 떨어지지 않는 해를 제외하고 4년마다 발생합니다.
예를 들어 2000년은 400으로 나누어 떨어지기 때문에 윤년인 반면 1900년은 400으로 나누어 떨어지기 때문에 윤년이 아닙니다. 100으로 나눌 수 있지만 400으로 나눌 수는 없습니다.
이를 프로그램으로 만들어 보겠습니다.
def is_leap_year(year):
"""
This function takes a year as input and returns True if it is a leap year and False otherwise.
"""
if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
return True
else:
return False
조건이 까다로우시면,
def is_leap_year(year):
if year % 400 == 0:
return True
if year % 100 == 0:
return False
if year % 4 == 0:
return True
return False
이렇게도 할 수 있습니다.
결국, 두 가지 방법은 같습니다.
calendar.isleap() 함수
그런데 파이썬에는 윤년인지를 확인하는 isleap() 함수가 이미 존재합니다. 이 함수는 연도가 윤년이면 True를 반환하고 그렇지 않으면 False를 반환합니다.
년도를 입력받아 윤년 여부를 출력하는 프로그램을 해 보겠습니다.
import calendar
year = int(input("Enter a year: "))
if calendar.isleap(year):
print(f"{year} is a leap year")
else:
print(f"{year} is not a leap year")
이 프로그램에서 input() 함수는 사용자에게 연도를 입력하라는 메시지를 표시하는 데 사용됩니다. 그런 다음 int() 함수를 사용하여 입력을 정수로 변환하고 year 변수에 저장합니다.
그런 다음 'if' 문은 'calendar.isleap()' 함수가 주어진 연도에 대해 True를 반환하는지 확인합니다. 그렇다면 프로그램은 해당 연도가 윤년이라는 메시지를 인쇄합니다. False를 반환하면 프로그램은 해당 연도가 윤년이 아니라는 메시지를 인쇄합니다.
이 프로그램은 Python의 'calendar.isleap()' 함수를 사용하여 주어진 연도가 윤년인지 확인하는 간단한 방법을 제공합니다.
감사합니다.
Do it! SQL을 찾아 주셔서 감사합니다. ♥ 댓글이 큰 힘이 됩니다. |
'IT > 파이썬 라이브러리 (Python)' 카테고리의 다른 글
#008 파이썬 라이브러리 : collections.namedtuple 자료에 이름을 붙이는 (54) | 2023.04.03 |
---|---|
#007 파이썬 라이브러리 : collections.deque 자료의 양쪽 끝에서 삽입 삭제 (38) | 2023.04.02 |
#005 파이썬 라이브러리 : datetime.timedelta 날짜 간의 차이 및 계산 (54) | 2023.03.31 |
#004 파이썬 라이브러리 : datetime.date 날짜 및 요일 계산 (69) | 2023.03.30 |
#003 파이썬 라이브러리 : re 정규 표현식으로 개인정보 보호 (126) | 2023.03.29 |
댓글