python 파이썬 datatime 모듈로 주말을 제외한 주중 날짜만 얻어보기
파이썬 datetime모듈에는 timedelta라는 기능이 있다
delta는 "차이"라는 뜻으로, 날짜와 시간에대한 차이를 제공하여 연산을 돕는 기능을 하기때문에 지어진 이름같다.
사용법
원하는 datetime object에다가 산술연산
예시)
today = datetime.today()
print(today)
결과 : 2022-12-20 15:55 ~~~
yesterday = today - timedelta(days=1)를 선언한 후
print(yesterday)
결과:2022-12-19 15:55~~~
이런식으로 정확히 today에서 day만 19로 바꾼값을 출력해주게 된다.
+를 활용하면 2022-12-21 15:55~~~ 이런식으로 내일의 값을 출력해준다.
parameter는 다음과 같다.
days=
seconds=
microseconds=.
milliseconds=
minutes=
hours=
weeks=
이제 코드를 보자
내 프로그램에는 주식 장이 열린마지막 2일의 날짜가 저장된 변수가 필요하다.
단순히 어제와 그제를 넣어도 된다면 참 좋겠지만, 주식장은 주말에는 열리지 않는다
화요일인 오늘 프로그램을 실행하면 월요일과 지난 금요일의 날짜가 변수에 저장되어야한다.
그래서 요일을 나타내는 weekday()를 사용하여 주중의 날짜를 얻었다.
weekday() 는 오늘의 요일을 숫자로 반환해주는 기능을 갖고있다.
월요일부터 일요일까지 0~6의 숫자가 반환된다.
날짜.weekday()가 5 혹은 6이 나올경우 주말이라는 뜻이니,
while loop를 활용해서 4가 나올때까지 하루씩 빼주는 방식을 사용하여
last_weekday에는 마지막 장날, day_before_lw에는 그전 마지막 장날을 저장했다
.
성공적으로 월요일과 금요일의 정보가 출력되었다.
내가필요한것은 날짜뿐이므로, 그뒤의 시각을 제거해주는 과정을 거쳤다.
:
1.datetime object를 string타입으로 번경
2.공백 split을 이용해 [날짜, 시각]이 저장된 리스트를 만듦
3.만들어진 list의 0번째 요소(날짜)만을 변수에 저장
출력결과
이상이다
읽어주셔서 감사합니다.
+쓰면서 알게된 사실)
date()를 사용하면 2022-12-20 형식으로 날짜만을 얻을 수있다.
today = datetime.today().date()
그래서 내코드에선 lw_key 와 dblw_key항목은 그냥 삭제했다.
테슬라의 어제 마감가와 그제 마감가를 얻는데 성공했다.