2013-08-18 3 views
3

파이썬에서이 간단한 스크립트로 주 번호를 얻으려고합니다.파이썬에서 미국 형식의 주 번호

import datetime 

t = datetime.date(2013,8,18) 
print t.isocalendar()[1] 

은 ISO의 형식 (33)을 반환하지만 미국 달력은 34 가 어떻게 미국의 형식이 주 번호를 얻을 수 있어야한다?

+0

[주 수를 파이썬으로 얻는 방법? ] (http://stackoverflow.com/a/2608868)? –

+0

그는 단지 주 번호가 아니라, 미국 형식의 주 번호를 원합니다. –

답변

0

반환 값은 33이며, 주 번호를 얻기위한 코드와 동일합니다. 비록 당신은 당신이 함께 같은 해당 문자열 모두를 할 수있는 한 줄 만들고 싶었다 경우 : isocalendar에 대한 파이썬 문서에서, 다음

t = datetime.date(2013, 8, 18).isocalendar()[1]

http://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm

또한 ISO 달력 뒤에 수학 설명을 :

는 ISO 년 52 또는 53 전체 주 구성되어 있으며, 일주일에 월요일에 을 시작하고 일요일에 끝나는. ISO 연도의 첫 번째 주는 목요일을 포함하는 첫 번째 (그레고리오) 달력 주 입니다. 이 을 주 번호 1이라고하고 해당 목요일의 ISO 연도는 그레고리오의 연도와 동일하게 입니다.

+0

일요일에 일주일에 시작할 때 질문하는 것이 문제라고 생각합니다. [Wikipedia] (http://en.wikipedia.org/wiki/ISO_week_date#Disadvantages)에서 : "일주일은 보통 일요일에 시작하는 것으로 간주되지만 월요일에 시작하도록 근무 주를 정의하는 경우가 많습니다." – Olathe

1

동일한 문제가 발생했습니다. ISO 캘린더는 훌륭한 개념이며 실제로 사용하기에 좋습니다. 그러나 미국에서의 비즈니스는 제대로 작동하지 않습니다. 나는 다음 해에있을 것으로 12 월말에보고 할 수있는 응용 프로그램을 작성할 수 없습니다. 나를 위해 적합한 솔루션은 다음과 같습니다.

from datetime import * 
today = datetime.today() 
print today.strftime("%U") 

올바른 미국 주 번호가 반환됩니다. 이 유일한주의 사항은 첫 번째 일요일 이전의 모든 날을 0 주로 간주한다는 것입니다. similar answer을 주신 Chaggster 님의 신용 : How to get week number in Python?