"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