สมมติว่าเรามีวันที่ในรูปแบบ “ปปปป-ดด-วว” เราต้องคืนเลขวันของปี ดังนั้นหากวันที่เป็น “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