일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- html/css
- 정보처리기사필기
- JSP/Servlet
- 상속
- 데이터분석
- SQL
- ChatGPT
- 혼공머신
- 파이썬
- JDBC
- 중학1-1
- JSP
- c언어
- 디버깅
- rnn
- 자바 실습
- 자바
- 중학수학
- 딥러닝
- 데이터베이스
- 컴퓨터구조
- 정보처리기사실기
- 개발일기
- 순환신경망
- 자바스크립트심화
- 머신러닝
- CSS
- 컴퓨터비전
- 자바스크립트
- 연습문제
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
다양한 데이터 다루기 1 - 날짜 계산하고 요일 알아내기 및 두 날짜의 차이, 윤년 판별하기 본문
다양한 데이터를 다루는 라이브러리를 살펴볼 것이다.
날짜를 계산하고 요일을 알려면? - 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.timedelta
datetime.timedelta()는 두 날짜의 차이를 계산할 때 사용하는 함수이다. 이 객체는 산술연산자 +, -를 사용할 수 있으므로 어떤 날짜에 원하는 기간(일, 시, 분, 초)을 더하거나 뺄 수 있다.
오늘부터 사귀기 시작한 커플이 100일 기념일을 챙기려 한다. 이 커플의 100일 기념일은 언제일까?
먼저 datetime.date.today()로 오늘 날짜의 객체를 얻는다.
today() 함수는 오늘 날짜를 반환한다. 오늘부터 100일 후의 날짜를 얻으려면 100일을 뜻하는 datetime.timedelta(days=100)으로 만든 객체가 필요하다.
timedelta에는 days 외에도 다음 표와 같은 매개변수를 사용할 수 있다.
이제 100일 후와 이전의 날짜를 출력하면 다음과 같다.
2월이 29일인 해를 알려면? - calendar.inleap
calendar.isleap()은 인수로 입력한 연도가 윤년인지 확인할 때 사용하는 함수이다.
어떤 해가 윤년인지 알려면 어떻게 해야 할까? 그레고리력에서 윤년을 정하는 규칙은 다음과 같다.
- 서력 기원 연수가 4로 나누어 떨어지는 해는 우선 윤년으로 한다.
- 그중에서 100으로 나누어 떨어지는 해는 평년으로 한다.
- 400으로 나누어 떨어지는 해는 다시 윤년으로 정한다.
사용자 정의 함수를 만들면 다음과 같다.
하지만 calendar 모듈에는 이미 윤년인지를 확인하는 isleap() 함수가 있다.
학습을 마치고
3개의 소단원은 공부하는데 몇 시간이나 걸렸나 모르겠다. 아마도 두 가지의 일을 동시에 하고 있어서 공부에 집중이 잘 되지 않는 것 같다.
다음 단원을 학습할 때는 좀 더 속도를 내보고 싶다.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
다양한 데이터 다루기 3 - 딕셔너리 초기화 및 데이터 출력에 대하여 (0) | 2024.10.05 |
---|---|
다양한 데이터 다루기 2 - 자료형 넣고 빼기 및 이름 붙이기, 사용한 단어의 개수 구하기 (0) | 2024.10.05 |
바이너리 데이터 다루기 - C로 만든 데이터 출력하기 (0) | 2024.10.05 |
텍스트 다루기 - 문자열 줄여 표시하기 및 긴 문장 줄 바꿈 그리고 정규 표현식에 대하여 (0) | 2024.10.05 |
정규 표현식 2 - 정규 표현식 시작하기 (0) | 2024.10.05 |