मान लीजिए, हमारे पास "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