10699번: 오늘 날짜
서울의 오늘 날짜를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
풀이
오늘 날짜를 출력하는 문제다.
매우 간단하게 print('2023-02-14')라고 해도 정답은 맞는데
이걸 원한 게 아닐 것 같다는 생각이 들었다. (당연함)
이 문제는 모듈을 활용해서 푸는 문제였는데, 모듈은 아직 내가 아는 개념이 아니다.
여기서 쓰이는 모듈은 datetime 이다.
https://docs.python.org/ko/3/library/datetime.html
날짜와 시간을 조작하는 클래스를 제공한다.
공식 문서를 보는데 가독성이 매우 좋지 않아서 이게 뭔 소리지 싶다...
datetime. 을 생략하고 싶다면 from datetime import datetime을 쓰면 된다.
ex. from datetime import datetime
datetime.today()
datetime.now()
현재 날짜 가져오기 (microsecond까지 나온다)
import datetime
datetime.datetime.today()
datetime.datetime.now()
-> 2023-02-14 16:30:29.254842
microsecond를 빼고 싶다면 replace를 써도 된다.
(근데 빼기 보다 표기법을 바꾸면 될 것 같다.
이건 second와 microsecond에만 적용되며 전자의 경우 00으로 출력된다.)
import datetime
now = datetime.datetime.now()
print(now)
now_real = now.replace(microsecond=0)
print(now_real)
yyyy-mm-dd 형식으로 출력하려면
from datetime import datetime
now = datetime.now().date()
print(now)
>> 2023-02-14
현재 날짜 가져오기 (년, 월, 일, 시, 분 초)
import datetime
now = datetime.datetime.now() (이건 today로 선언해도 된다.)
print(now.year)
print(now.month)
... day, hour, minute, second, microsecond 까지 가져올 수 있다.
날짜에 숫자를 더하고 뺄 때 (month와 year은 안된다.)
이 때는 datetime.timedelta() 를 쓴다.
ex.now = datetime.datetime.now()
now += datetime.timedelta(seconds=3) # 3초 더하기 (빼기를 하고 싶으면 -를 붙이면 된다.)
print(now)
month와 year을 더하고 빼고 싶다면 'relativedelta'를 쓰면 된다.
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
now = datetime.now() # now = now.replace(microsecond=0) 하면 그냥 연월일 시분초만 나온다.
now_later = now + relativedelta(months=2) # 2달 후
print(now_later)
>> 2023-04-14 17:07:41.606659
걍 정리하다 보니 import datetime과 from datetime import datetime이 섞여 있는데
전자의 경우 할당할 때 datetime.datetime 두 번 써주면 되고
후자의 경우에는 datetime. 한번만 써줘도 된다.
코드
from datetime import datetime
now = datetime.now().date()
print(now)
'🥧 Python > ⚙️ 코딩테스트' 카테고리의 다른 글
[백준-Python] 2525번: 오븐 시계 (0) | 2023.02.15 |
---|---|
[백준-Python] 7287번: 등록 (0) | 2023.02.14 |
[백준-Python] 11022번: A+B -8 (0) | 2023.02.14 |
[백준-Python] 11021번: A+B -7 (0) | 2023.02.14 |
[백준-Python] 2163번: 초콜릿 자르기 (0) | 2023.02.14 |