it공부 (개념)

python 파이썬 datatime 모듈로 주말을 제외한 주중 날짜만 얻어보기

cantor 2022. 12. 20. 16:25

출처 https://docs.python.org/3/library/datetime.html

파이썬 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항목은 그냥 삭제했다.

 

테슬라의 어제 마감가와 그제 마감가를 얻는데 성공했다.