복붙노트

[PYTHON] 파이썬에서 주 번호를 얻는 방법?

PYTHON

파이썬에서 주 번호를 얻는 방법?

파이썬으로 6 월 16 일 (wk24) 현재의 주 숫자를 찾는 방법은 무엇입니까?

해결법

  1. ==============================

    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. ==============================

    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. ==============================

    3.datetime에서 주 번호를 문자열로 직접 가져올 수 있습니다.

    datetime에서 주 번호를 문자열로 직접 가져올 수 있습니다.

    >>> import datetime
    >>> datetime.date(2010, 6, 16).strftime("%V")
    '24'
    

    또한 strtotime 매개 변수를 변경하는 연도의 주 수를 다른 "유형"으로 지정할 수 있습니다.

    나는 여기에서 그것을 얻었다. 그것은 나를 위해 파이썬 2.7.6에서 일했다.

  4. ==============================

    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. ==============================

    5.일반적으로 현재 주 번호를 얻으려면 (일요일부터 시작) :

    일반적으로 현재 주 번호를 얻으려면 (일요일부터 시작) :

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

    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. ==============================

    7.즉각적인 주 (week)의 정수 값에 대해 try :

    즉각적인 주 (week)의 정수 값에 대해 try :

    import datetime
    datetime.datetime.utcnow().isocalendar()[1]
    
  8. ==============================

    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. ==============================

    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. ==============================

    10.datetime.datetime.isocalendar를보십시오.

    datetime.datetime.isocalendar를보십시오.

  11. ==============================

    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. ==============================

    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. ==============================

    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.............!!!") 
    
  14. from https://stackoverflow.com/questions/2600775/how-to-get-week-number-in-python by cc-by-sa and MIT license