programing tip

Python : 주어진 날짜의 시작 및 끝 데이터 제공

itbloger 2021. 1. 10. 16:56
반응형

Python : 주어진 날짜의 시작 및 끝 데이터 제공


day = "13/Oct/2013"
print("Parsing :",day)
day, mon, yr= day.split("/")
sday = yr+" "+day+" "+mon
myday = time.strptime(sday, '%Y %d %b')
Sstart = yr+" "+time.strftime("%U",myday )+" 0"
Send = yr+" "+time.strftime("%U",myday )+" 6"
startweek = time.strptime(Sstart, '%Y %U %w')
endweek = time.strptime(Send, '%Y %U %w')
print("Start of week:",time.strftime("%a, %d %b %Y",startweek))
print("End of week:",time.strftime("%a, %d %b %Y",endweek))
print("Data entered:",time.strftime("%a, %d %b %Y",myday))

out:
Parsing : 13/Oct/2013
Start of week: Sun, 13 Oct 2013
End of week: Sat, 19 Oct 2013
Sun, 13 Oct 2013

지난 2 일 동안 파이썬을 배웠고이를 수행하는 더 깨끗한 방법이 있는지 궁금해했습니다.이 방법은 작동합니다 ...보기 흉해 보이며 각 날짜에 대해 새로운 시간 변수를 생성해야하는 것은 어리석은 것 같습니다. 간단한 전화를 통해 주어진 날짜를 일주일의 시작과 끝으로 상쇄하는 방법이지만 인터넷이나 문서에서 작동하는 것처럼 보이는 것을 찾을 수 없었습니다.


datetime모듈을 사용하십시오 .

그러면 한주의 시작 및 끝 (월요일부터 일요일까지)이 표시됩니다.

from datetime import datetime, timedelta

day = '12/Oct/2013'
dt = datetime.strptime(day, '%d/%b/%Y')
start = dt - timedelta(days=dt.weekday())
end = start + timedelta(days=6)
print(start)
print(end)

편집하다:

print(start.strftime('%d/%b/%Y'))
print(end.strftime('%d/%b/%Y'))

표준 시간 형식을 유지하고 오늘을 참조하려는 경우 약간의 변형이 있습니다.

from datetime import datetime, timedelta

today = datetime.now().date()
start = today - timedelta(days=today.weekday())
end = start + timedelta(days=6)
print("Today: " + str(today))
print("Start: " + str(start))
print("End: " + str(end))

사용 진자 모듈을

    today = pendulum.now()
    start = today.start_of('week')
    end = today.end_of('week')

ReferenceURL : https://stackoverflow.com/questions/19216334/python-give-start-and-end-of-week-data-from-a-given-date

반응형