ভূমিকা
দুটি সময়ের (ঘণ্টা এবং মিনিট) মধ্যে পার্থক্য বের করা একটি সাধারণ প্রোগ্রামিং টাস্ক। এই নিবন্ধে একটি ফাংশন দেখানো হয়েছে যা দুটি সময় গ্রহণ করে তাদের পার্থক্য ঘণ্টা এবং মিনিটে রিটার্ন করে। নোট: এই কোডে সেকেন্ড বিবেচনা করা হয়নি এবং ডেট (তারিখ) পার্থক্য হিসাব করা হয়নি, শুধুমাত্র একই দিনের মধ্যে সময় পার্থক্য হিসাব করা হয়েছে।
উদাহরণ কোড
def difference_time(h1, m1, h2, m2):
t1 = h1 * 60 + m1 # প্রথম সময় মিনিটে রূপান্তর
t2 = h2 * 60 + m2 // দ্বিতীয় সময় মিনিটে রূপান্তর
if t1 == t2:
print("The times are the same")
return
else:
diff = t2 - t1
hours = (int(diff / 60)) % 24
mins = diff % 60
print(hours, ":", mins)
if __name__ == "__main__":
print("The difference between times are given below :")
difference_time(13, 20, 11, 49) # ১৩:২০ থেকে ১১:৪৯ (পরবর্তী দিন)
difference_time(17, 11, 9, 59) # ১৭:১১ থেকে ০৯:৫৯ (পরবর্তী দিন)
difference_time(21, 4, 11, 34) # ২১:০৪ থেকে ১১:৩৪ (পরবর্তী দিন)
আউটপুট
The difference between times are given below : 23 : 29 17 : 48 15 : 30
ব্যাখ্যা
প্রথমে দুটি সময়কে মোট মিনিটে রূপান্তর করা হয়েছে (
h*60 + m)।যদি সময় দুটি সমান হয়, তবে মেসেজ প্রিন্ট করে ফাংশন থেকে রিটার্ন করা হয়।
পার্থক্য (
diff) বের করার পর, ঘণ্টা =diff // 60এবং মিনিট =diff % 60।% 24ব্যবহার করা হয়েছে যাতে ঘণ্টা ২৪-এর বেশি না হয় (রাত পেরিয়ে যাওয়া ক্ষেত্রে)।মেইন ব্লকে তিনটি টেস্ট কেস রান করা হয়েছে।
সীমাবদ্ধতা ও উন্নতি
এই ফাংশনটি ধরে নিচ্ছে যে দুটি সময় একই দিনের বা পরবর্তি দিনের (২৪ ঘণ্টার মধ্যে)। যদি পার্থক্য ২৪ ঘণ্টার বেশি হয়, তবে ফলাফল ভুল হবে।
বাস্তব অ্যাপ্লিকেশনে
datetimeমডিউল ব্যবহার করা ভালো, যা ডেট এবং টাইম দুইটাই হ্যান্ডেল করতে পারে এবং টাইমজোন সাপোর্ট করে।
উন্নত সংস্করণ (datetime ব্যবহার)
from datetime import datetime, timedelta
def time_diff(dt1_str, dt2_str, fmt="%H:%M"):
dt1 = datetime.strptime(dt1_str, fmt)
dt2 = datetime.strptime(dt2_str, fmt)
if dt2 < dt1:
dt2 += timedelta(days=1) # পরের দিন ধরে নেওয়া
diff = dt2 - dt1
hours, remainder = divmod(diff.seconds, 3600)
minutes = remainder // 60
return f"{hours}:{minutes:02d}"
print(time_diff("13:20", "11:49")) # 23:29