[python] 날짜가 지정된 요일을 어떻게 알 수 있습니까?

다음을 확인하고 싶습니다. 날짜 ( datetime개체), 해당 요일은 무엇입니까?

예를 들어, 일요일은 첫째 날, 월요일 : 둘째 날 등입니다.

그리고 입력이 오늘 날짜와 같은 것이면.

>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday()  # what I look for

출력은 아마도 6(금요일이기 때문에)



답변

사용 weekday()( 문서 ) :

>>> import datetime
>>> datetime.datetime.today()
datetime.datetime(2012, 3, 23, 23, 24, 55, 173504)
>>> datetime.datetime.today().weekday()
4

설명서에서 :

요일을 정수로 리턴하십시오. 여기서 월요일은 0이고 일요일은 6입니다.


답변

영어로 날짜를 갖고 싶다면 :

from datetime import date
import calendar
my_date = date.today()
calendar.day_name[my_date.weekday()]  #'Wednesday'


답변

영어로 날짜를 갖고 싶다면 :

>>> from datetime import datetime
>>> datetime.today().strftime('%A')
'Wednesday'

더 읽기 :
https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior


답변

date.weekday()또는을 사용하십시오 date.isoweekday().


답변

CodeChef 질문으로 이것을 해결했습니다 .

import datetime
dt = '21/03/2012'
day, month, year = (int(x) for x in dt.split('/'))
ans = datetime.date(year, month, day)
print (ans.strftime("%A"))


답변

1700/1/1 이후의 날짜에 대한 가져 오기가없는 솔루션

def weekDay(year, month, day):
    offset = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
    week   = ['Sunday',
              'Monday',
              'Tuesday',
              'Wednesday',
              'Thursday',
              'Friday',
              'Saturday']
    afterFeb = 1
    if month > 2: afterFeb = 0
    aux = year - 1700 - afterFeb
    # dayOfWeek for 1700/1/1 = 5, Friday
    dayOfWeek  = 5
    # partial sum of days betweem current date and 1700/1/1
    dayOfWeek += (aux + afterFeb) * 365
    # leap year correction    
    dayOfWeek += aux / 4 - aux / 100 + (aux + 100) / 400
    # sum monthly and day offsets
    dayOfWeek += offset[month - 1] + (day - 1)
    dayOfWeek %= 7
    return dayOfWeek, week[dayOfWeek]

print weekDay(2013, 6, 15) == (6, 'Saturday')
print weekDay(1969, 7, 20) == (0, 'Sunday')
print weekDay(1945, 4, 30) == (1, 'Monday')
print weekDay(1900, 1, 1)  == (1, 'Monday')
print weekDay(1789, 7, 14) == (2, 'Tuesday')


답변

날짜가 datetime 객체 인 경우 솔루션입니다.

import datetime
def dow(date):
    days=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
    dayNumber=date.weekday()
    print days[dayNumber]