সমস্যা বিবরণ
"YYYY-MM-DD" ফরম্যাটে একটি তারিখ দেওয়া আছে। বছরের কততম দিন তা বের করতে হবে।
উদাহরণ: "2019-02-10" → ৪১ নম্বর দিন।
সমাধানের পদ্ধতি
- মাসানুসারে দিনের কাউন্ট সংরক্ষণ করুন: [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
- তারিখ পার্স করে বছর, মাস, দিন বের করুন।
- লিপ ইয়ার হলে ফেব্রুয়ারি ২৯ দিন করুন (বর্ষ ৪০০ দিয়ে ভাগশেষ ০ অথবা ৪ দিয়ে ভাগশেষ ০ কিন্তু ১০০ দিয়ে না)।
- প্রদত্ত মাসের আগ পর্যন্ত মোট দিন + বর্তমান দিন = বছরের দিন।
পাইথন উদাহরণ
class Solution(object):
def dayOfYear(self, date):
days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
y, m, d = map(int, date.split("-"))
# লিপ ইয়ার চেক
if y % 400 == 0 or (y % 4 == 0 and y % 100 != 0):
days[2] = 29
# ক্যুমুলেটিভ দিন ক্যালকুলেট
for i in range(1, len(days)):
days[i] += days[i-1]
return days[m-1] + d
ob1 = Solution()
print(ob1.dayOfYear("2019-02-10"))
ইনপুট
"2019-02-10"
আউটপুট
41
Pythonic পদ্ধতি (datetime মডিউল)
from datetime import datetime
def dayOfYear(date):
dt = datetime.strptime(date, "%Y-%m-%d")
return dt.timetuple().tm_yday
print(dayOfYear("2019-02-10")) # 41