কম্পিউটার টিউটোরিয়াল

পাইথন প্রোগ্রাম: বর্তমান সময় এবং দেওয়া সময়ের পার্থক্য বের করা


ভূমিকা

দুটি সময়ের (ঘণ্টা এবং মিনিট) মধ্যে পার্থক্য বের করা একটি সাধারণ প্রোগ্রামিং টাস্ক। এই নিবন্ধে একটি ফাংশন দেখানো হয়েছে যা দুটি সময় গ্রহণ করে তাদের পার্থক্য ঘণ্টা এবং মিনিটে রিটার্ন করে। নোট: এই কোডে সেকেন্ড বিবেচনা করা হয়নি এবং ডেট (তারিখ) পার্থক্য হিসাব করা হয়নি, শুধুমাত্র একই দিনের মধ্যে সময় পার্থক্য হিসাব করা হয়েছে।

উদাহরণ কোড

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

  1. পাইথনে বাইনারি ট্রিতে নোড এবং এর ডিসেন্ডেন্টের মধ্যে সর্বোচ্চ পার্থক্য বের করার প্রোগ্রাম

  2. পাইথনে BST-এর মেডিয়ান O(n) সময় এবং O(1) স্পেসে বের করা

  3. পাইথনে লিস্টের সব পেয়ারের অ্যাবসোলিউট ডিফারেন্সের যোগফল

  4. পাইথনে বিষম ও জোড় অঙ্কগুলোর যোগফলের পার্থক্য বের করার প্রোগ্রাম