관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

다양한 데이터 다루기 1 - 날짜 계산하고 요일 알아내기 및 두 날짜의 차이, 윤년 판별하기 본문

프로그래밍 언어/파이썬

다양한 데이터 다루기 1 - 날짜 계산하고 요일 알아내기 및 두 날짜의 차이, 윤년 판별하기

huenuri 2024. 10. 5. 21:57

다양한 데이터를 다루는 라이브러리를 살펴볼 것이다. 


 

 

 

날짜를 계산하고 요일을 알려면? - datetime.date

datetime.date는 년, 월, 일로 날짜를 표현할 때 사용하는 모듈이다.

 

2019년 12월 14일부터 만나기 시작했으면 2021년 6월 5일을 사귄 지 며칠째 되는 날일까? 아울러 사귀기 시작한 2019년 12월 14일은 무슨 요일이었을까?


 

 

 

두 날짜의 차이 구하기

년, 월, 일로 다음과 같이 datetime.date 객체를 만들 수 있다.

 

객체를 만들었다면 뺄셈으로 쉽게 구할 수 있다.

 

 

하지만 책과는 달리 날짜가 539일로 나왔다. 두 번이 해봤지만 역시 같았다. 아마 현재 날짜로 계산하는 것 같았다.


 

 

 

datetime.datetime 객체

datetime.date는 년, 월, 일로만 구성된 데이터이므로 시, 분, 초까지 포함한 일시 데이태를 생성하려면 다음과 같이 datetime.datetime을 사용해야 한다.

 

다음과 같은 combine() 함수로 datetime.date 객체와 datetime.time 객체를 합쳐 일시 데이터를 만들 수 있다.


 

 

 

요일 알아내기

요일은 datetime.date 객체의 weekday() 함수를 사용하면 쉽게 구할 수 있다.

 

 

0은 월요일을 의미하며 순서대로 하면 5는 토요일이 된다. 이와는 달리 월요일을 1로 하려면 다음과 같이 사용하면 된다.

 

 

datetime - 기본 날짜와 시간 형

 

datetime — Basic date and time types

Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr...

docs.python.org

 

 

time 라이브러리 더 알아보기

 

05-6 표준 라이브러리

이제 파이썬 프로그래밍 능력을 높여 줄 더 큰 날개를 달아 보자. 전 세계의 파이썬 고수들이 만든 유용한 프로그램을 모아 놓은 것이 바로 **파이썬 표준 라이브러리**이다. ‘라…

wikidocs.net


 

 

 

 

두 날짜의 차이를 알려면? - datetime.timedelta

datetime.timedelta()는 두 날짜의 차이를 계산할 때 사용하는 함수이다. 이 객체는 산술연산자 +, -를 사용할 수 있으므로 어떤 날짜에 원하는 기간(일, 시, 분, 초)을 더하거나 뺄 수 있다.

 

오늘부터 사귀기 시작한 커플이 100일 기념일을 챙기려 한다. 이 커플의 100일 기념일은 언제일까?


 

 

 

먼저 datetime.date.today()로 오늘 날짜의 객체를 얻는다.

 

today() 함수는 오늘 날짜를 반환한다. 오늘부터 100일 후의 날짜를 얻으려면 100일을 뜻하는 datetime.timedelta(days=100)으로 만든 객체가 필요하다.

 

timedelta에는 days 외에도 다음 표와 같은 매개변수를 사용할 수 있다.

 

 

 

이제 100일 후와 이전의 날짜를 출력하면 다음과 같다.

 

 

datetime - 기본 날짜와 시간 형

 

datetime — Basic date and time types

Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr...

docs.python.org

 


 

 

 

 

2월이 29일인 해를 알려면? - calendar.inleap

calendar.isleap()은 인수로 입력한 연도가 윤년인지 확인할 때 사용하는 함수이다.

 

어떤 해가 윤년인지 알려면 어떻게 해야 할까? 그레고리력에서 윤년을 정하는 규칙은 다음과 같다.

  1. 서력 기원 연수가 4로 나누어 떨어지는 해는 우선 윤년으로 한다.
  2. 그중에서 100으로 나누어 떨어지는 해는 평년으로 한다.
  3. 400으로 나누어 떨어지는 해는 다시 윤년으로 정한다.

사용자 정의 함수를 만들면 다음과 같다.

 

 

하지만 calendar 모듈에는 이미 윤년인지를 확인하는 isleap() 함수가 있다.

 

 

calendar - 일반 달력 관련 함수

 

calendar — General calendar-related functions

Source code: Lib/calendar.py This module allows you to output calendars like the Unix cal program, and provides additional useful functions related to the calendar. By default, these calendars have...

docs.python.org

 


 

 

 

학습을 마치고

3개의 소단원은 공부하는데 몇 시간이나 걸렸나 모르겠다. 아마도 두 가지의 일을 동시에 하고 있어서 공부에 집중이 잘 되지 않는 것 같다.

다음 단원을 학습할 때는 좀 더 속도를 내보고 싶다.