[PYTHON] 파이썬에서 주 번호를 얻는 방법?
PYTHON파이썬에서 주 번호를 얻는 방법?
파이썬으로 6 월 16 일 (wk24) 현재의 주 숫자를 찾는 방법은 무엇입니까?
해결법
-
==============================
1.datetime.date는 isocalendar () 메소드를 가지고 있는데, 이것은 calendar week가 들어있는 튜플을 반환합니다 :
datetime.date는 isocalendar () 메소드를 가지고 있는데, 이것은 calendar week가 들어있는 튜플을 반환합니다 :
>>> import datetime >>> datetime.date(2010, 6, 16).isocalendar()[1] 24
datetime.date.isocalendar ()는 주어진 날짜 인스턴스에 대해 각 연도, 주 번호 및 요일을 포함하는 튜플을 반환하는 인스턴스 메서드입니다.
-
==============================
2.나는 date.isocalendar ()가 대답이 될 것이라고 믿습니다. 이 기사에서는 ISO 8601 Calendar의 수학에 대해 설명합니다. Python 문서의 datetime 페이지의 date.isocalendar () 부분을 확인하십시오.
나는 date.isocalendar ()가 대답이 될 것이라고 믿습니다. 이 기사에서는 ISO 8601 Calendar의 수학에 대해 설명합니다. Python 문서의 datetime 페이지의 date.isocalendar () 부분을 확인하십시오.
>>> dt = datetime.date(2010, 6, 16) >>> wk = dt.isocalendar()[1] 24
.isocalendar ()는 (year, wk num, wk day)의 3-tuple을 반환합니다. dt.isocalendar () [0]은 연도를 반환하고, dt.isocalendar () [1]은 주 번호를 반환하고 dt.isocalendar () [2]는 요일을 반환합니다. 될 수있는만큼 간단합니다.
-
==============================
3.datetime에서 주 번호를 문자열로 직접 가져올 수 있습니다.
datetime에서 주 번호를 문자열로 직접 가져올 수 있습니다.
>>> import datetime >>> datetime.date(2010, 6, 16).strftime("%V") '24'
또한 strtotime 매개 변수를 변경하는 연도의 주 수를 다른 "유형"으로 지정할 수 있습니다.
나는 여기에서 그것을 얻었다. 그것은 나를 위해 파이썬 2.7.6에서 일했다.
-
==============================
4.다른 옵션이 있습니다.
다른 옵션이 있습니다.
import time from time import gmtime, strftime d = time.strptime("16 Jun 2010", "%d %b %Y") print(strftime("%U", d))
24를 인쇄합니다.
참조 : http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior
-
==============================
5.일반적으로 현재 주 번호를 얻으려면 (일요일부터 시작) :
일반적으로 현재 주 번호를 얻으려면 (일요일부터 시작) :
from datetime import * today = datetime.today() print today.strftime("%U")
-
==============================
6.다른 사람들이 제안한 ISO 주간은 좋은 것이지만, 귀하의 요구에 맞지 않을 수 있습니다. 매주 시작되는 월요일은 월요일로 시작하여 연말과 연말에 흥미로운 예외가 발생한다고 가정합니다.
다른 사람들이 제안한 ISO 주간은 좋은 것이지만, 귀하의 요구에 맞지 않을 수 있습니다. 매주 시작되는 월요일은 월요일로 시작하여 연말과 연말에 흥미로운 예외가 발생한다고 가정합니다.
주 1이 항상 1 월 1 일에서 1 월 7 일까지라는 정의를 요일에 관계없이 사용하려면 다음과 같은 파생을 사용하십시오.
>>> testdate=datetime.datetime(2010,6,16) >>> print(((testdate - datetime.datetime(testdate.year,1,1)).days // 7) + 1) 24
-
==============================
7.즉각적인 주 (week)의 정수 값에 대해 try :
즉각적인 주 (week)의 정수 값에 대해 try :
import datetime datetime.datetime.utcnow().isocalendar()[1]
-
==============================
8.보드 전체에서 isocalendar 주 번호 만 사용하는 경우 다음과 같이 충분해야합니다.
보드 전체에서 isocalendar 주 번호 만 사용하는 경우 다음과 같이 충분해야합니다.
import datetime week = date(year=2014, month=1, day=1).isocalendar()[1]
이것은 주 번호에 대한 isocalendar에 의해 반환 된 튜플의 두 번째 멤버를 가져옵니다.
그러나 그레고리오 력을 다루는 날짜 함수를 사용하려는 경우 isocalendar만으로는 작동하지 않습니다! 다음 예제를 참조하십시오.
import datetime date = datetime.datetime.strptime("2014-1-1", "%Y-%W-%w") week = date.isocalendar()[1]
여기서 문자열은 2014 년 첫 주 월요일을 날짜로 반환한다고 말합니다. isocalendar를 사용하여 여기에서 주 번호를 검색하면 같은 주 번호를 되 찾을 수 있지만 우리는 그렇지 않습니다. 그 대신 우리는 2 주간의 숫자를 얻습니다. 왜?
그레고리력의 1 주차는 월요일이 포함 된 첫 번째 주입니다. isocalendar의 1 번째 주간은 목요일이 포함 된 첫 번째 주입니다. 2014 년 초 부분 일주일에 목요일이 포함되어 있으므로 isocalendar에 의해 1 주일이되고 2 주째에 날짜가 표시됩니다.
그레고리 안주를 얻으려면 isocalendar에서 그레고리 안으로 변환해야합니다. 트릭을 수행하는 간단한 함수가 있습니다.
import datetime def gregorian_week(date): # The isocalendar week for this date iso_week = date.isocalendar()[1] # The baseline Gregorian date for the beginning of our date's year base_greg = datetime.datetime.strptime('%d-1-1' % date.year, "%Y-%W-%w") # If the isocalendar week for this date is not 1, we need to # decrement the iso_week by 1 to get the Gregorian week number return iso_week if base_greg.isocalendar()[1] == 1 else iso_week - 1
-
==============================
9.아래와 같이 % W 지시문을 사용해보십시오 :
아래와 같이 % W 지시문을 사용해보십시오 :
d = datetime.datetime.strptime('2016-06-16','%Y-%m-%d') print(datetime.datetime.strftime(d,'%W'))
'% W': 10 진수로 표시되는 년의 주 번호 (주의 첫 번째 요일을 월요일). 첫 번째 월요일 이전의 모든 새해는 0 주일로 간주됩니다 (00, 01, ..., 53).
-
==============================
10.datetime.datetime.isocalendar를보십시오.
datetime.datetime.isocalendar를보십시오.
-
==============================
11.isocalendar ()는 일부 날짜의 잘못된 연도 및 주 번호 값을 반환합니다.
isocalendar ()는 일부 날짜의 잘못된 연도 및 주 번호 값을 반환합니다.
Python 2.7.3 (default, Feb 27 2014, 19:58:35) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import datetime as dt >>> myDateTime = dt.datetime.strptime("20141229T000000.000Z",'%Y%m%dT%H%M%S.%fZ') >>> yr,weekNumber,weekDay = myDateTime.isocalendar() >>> print "Year is " + str(yr) + ", weekNumber is " + str(weekNumber) Year is 2015, weekNumber is 1
Mark Ransom의 접근 방식과 비교 :
>>> yr = myDateTime.year >>> weekNumber = ((myDateTime - dt.datetime(yr,1,1)).days/7) + 1 >>> print "Year is " + str(yr) + ", weekNumber is " + str(weekNumber) Year is 2014, weekNumber is 52
-
==============================
12.토론을 두 단계로 요약합니다.
토론을 두 단계로 요약합니다.
예열
```python
from datetime import datetime, date, time d = date(2005, 7, 14) t = time(12, 30) dt = datetime.combine(d, t) print(dt)
```
첫 번째 단계
datetime 개체를 수동으로 생성하려면 datetime.datetime (2017,5,3) 또는 datetime.datetime.now ()를 사용할 수 있습니다.
그러나 실제로는 기존 문자열을 구문 분석해야합니다. 특정 형식을 사용해야하는 datetime.strptime ( '2017-5-3', '% Y- % m- % d')과 같은 strptime 함수를 사용할 수 있습니다. 다른 형식 코드의 세부 사항은 공식 문서에서 찾을 수 있습니다.
또는 더 편리한 방법은 dateparse 모듈을 사용하는 것입니다. 예 : dateparser.parse ('16 Jun 2010 '), dateparser.parse ('12 / 2 / 12') 또는 dateparser.parse ( '2017-5-3')
위의 두 접근 방식은 datetime 객체를 반환합니다.
2 단계
얻은 datetime 개체를 사용하여 strptime (형식)을 호출하십시오. 예를 들어,
```python
dt = datetime.strptime('2017-01-1','%Y-%m-%d') # return a datetime object. This day is Sunday print(dt.strftime("%W")) # '00' Monday as the 1st day of the week. All days in a new year preceding the 1st Monday are considered to be in week 0. print(dt.strftime("%U")) # '01' Sunday as the 1st day of the week. All days in a new year preceding the 1st Sunday are considered to be in week 0. print(dt.strftime("%V")) # '52' Monday as the 1st day of the week. Week 01 is the week containing Jan 4.
```
사용할 형식을 결정하는 것은 매우 까다 롭습니다. 더 좋은 방법은 isocalendar ()를 호출 할 날짜 객체를 가져 오는 것입니다. 예를 들어,
```python
dt = datetime.strptime('2017-01-1','%Y-%m-%d') # return a datetime object d = dt.date() # convert to a date object. equivalent to d = date(2017,1,1), but date.strptime() don't have the parse function year, week, weekday = d.isocalendar() print(year, week, weekday) # (2016,52,7) in the ISO standard
```
실제로, "크리스마스 - 새해"쇼핑 시즌 특히 주간 보고서를 준비하려면 date.isocalendar ()를 사용하는 것이 더 낫습니다.
-
==============================
13.
userInput = input ("Please enter project deadline date (dd/mm/yyyy/): ") import datetime currentDate = datetime.datetime.today() testVar = datetime.datetime.strptime(userInput ,"%d/%b/%Y").date() remainDays = testVar - currentDate.date() remainWeeks = (remainDays.days / 7.0) + 1 print ("Please pay attention for deadline of project X in days and weeks are : " ,(remainDays) , "and" ,(remainWeeks) , "Weeks ,\nSo hurryup.............!!!")
from https://stackoverflow.com/questions/2600775/how-to-get-week-number-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Borg 패턴이 파이썬의 싱글 톤 패턴보다 나은 이유는 무엇입니까? (0) | 2018.10.09 |
---|---|
[PYTHON] 파이썬 내에서 명령 행 프로그램 실행하기 [duplicate] (0) | 2018.10.09 |
[PYTHON] 실행 표준 편차를 효율적으로 계산하는 방법? (0) | 2018.10.09 |
[PYTHON] Python 앱에서 Google 검색 (0) | 2018.10.09 |
[PYTHON] Python 스크립트 예약 - Windows 7 (0) | 2018.10.09 |