본문 바로가기
PROGRAMMING/Python

[PYTHON] 특정 날짜가 올해의 몇 주차인지 계산, 확인 방법

by HYUNHP 2022. 12. 31.
728x90
반응형

안녕하세요, HELLO

이번에는 파이썬으로 특정 날짜가 올해의 몇 번째 주인지 구하는 방법을 살펴보겠습니다.


STEP 1. 'timedelata 데이터인 경우, datetime isocalendar 함수' 활용

 

STEP 2. 'String 데이터인 경우, datetime과 split 함수' 활용

 

반응형

 

STEP 1. 'timedelata 데이터인 경우, datetime isocalendar 함수' 활용

 

Timedelta 데이터인 경우에는, 별도의 전처리 없이 Datetime 패키지를 import 하고, isocalendar 함수를 호출하면 아래와 같이 날짜 정보를 튜플로 반환받습니다.

 

import datetime

date = datetime.datetime.now().isocalendar() 
print(f'Isocalendar : {date}')
print(f'First is year, {date[0]}.')
print(f'Second is week number, {date[1]}.')
print(f'Last is weekday, {date[2]}.\n')

 

리턴으로 받는 튜플은 아래와 같습니다. 이때, 두 번째 항목의 인덱스로 접근하면 오늘이 몇 번째 주인지 알 수 있습니다.

  • 첫 번째 항목은 해당 일자의 연도
  • 두번째 항목은 해당 일자의 주차
  • 세 번째 항목은 해당 일자의 weekday

now() 함수 이외에 확인하려는 날짜를 입력하면 해당 날짜가 몇 번째 주인지도 구할 수 있습니다.

 

new_date = datetime.datetime(2023,1,1).isocalendar() 

print(f'Isocalendar : {new_date}')
print(f'First is year, {new_date[0]}.')
print(f'Second is week number, {new_date[1]}.')
print(f'Last is weekday, {new_date[2]}.\n')

 

 

STEP 2. 'String 데이터인 경우, datetime과 split 함수' 활용

 

Step 1처럼 timedelta가 아닌 string, object인 경우에는, split 함수를 통해 '연, 월, 일'로 나눠서 처리할 수 있습니다.

 

data = '2022-12-31'

def get_week_num(data) -> int:
    temp_date = data.split('-')
    text = datetime.date(
            year = int(temp_date[0]),
            month = int(temp_date[1]),
            day = int(temp_date[2])).strftime('%V')    
    return text

print(f'{data} week number is : {get_week_num(data)}')

# 2022-12-31 week number is : 52

■ 마무리

'특정 날짜가 올해의 몇 주차인지 계산, 확인 방법'에 대해서 알아봤습니다.

좋아요댓글 부탁드리며,

오늘 하루도 즐거운 날 되시길 기도하겠습니다 :)

감사합니다.

반응형

댓글