Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 올해의 날

<시간/>

"YYYY-MM-DD" 형식의 날짜가 있다고 가정합니다. 연도의 일 수를 반환해야 합니다. 따라서 날짜가 "2019-02-10"이면 올해의 41번째 날입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • D가 [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]과 같은 일 수의 배열이라고 가정합니다.
  • 날짜를 년, 월, 일 목록으로 변환
  • 연도가 윤년이면 날짜 설정 D[2] =29
  • mm – 1월까지의 일 수와 그 이후의 일 수를 더하세요.

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution(object):
   def dayOfYear(self, date):
      days = [0,31,28,31,30,31,30,31,31,30,31,30,31]
      d = list(map(int,date.split("-")))
      if d[0] % 400 == 0:
         days[2]+=1
      elif d[0]%4 == 0 and d[0]%100!=0:
         days[2]+=1
      for i in range(1,len(days)):
         days[i]+=days[i-1]
      return days[d[1]-1]+d[2]
ob1 = Solution()
print(ob1.dayOfYear("2019-02-10"))

입력

"2019-02-10"

출력

41