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

পাইথনে ১২ ঘণ্টা ফরম্যাটকে ২৪ ঘণ্টায় কনভার্ট করা


সমস্যা

১২ ঘণ্টা ফরম্যাট (AM/PM) টাইমকে ২৪ ঘণ্টা ফরম্যাটে রূপান্তর করা।


Input:  "12:20:20 PM"  → Output: "12:20:20"  (12 PM = 12:00)
Input:  "12:20:20 AM"  → Output: "00:20:20"  (12 AM = 00:00)
Input:  "01:30:45 PM"  → Output: "13:30:45"
Input:  "01:30:45 AM"  → Output: "01:30:45"

আলগরিদম

  1. স্ট্রিং থেকে ঘণ্টা, মিনিট, সেকেন্ড, AM/PM এক্সট্রাক্ট করুন।
  2. AM হলে: ঘণ্টা ১২ হলে ০০ করুন, বাকি যেন থাকে।
  3. PM হলে: ঘণ্টা ১২ না হলে ১২ যোগ করুন।
  4. ফরম্যাট: HH:MM:SS

উদাহরণ কোড (datetime ব্যবহার - সুপারিশকৃত)


from datetime import datetime

def convert_12_to_24(time_str):
    """১২ ঘণ্টা ফরম্যাট (HH:MM:SS AM/PM) → ২৪ ঘণ্টা (HH:MM:SS)"""
    try:
        dt = datetime.strptime(time_str.strip(), "%I:%M:%S %p")
        return dt.strftime("%H:%M:%S")
    except ValueError:
        return "Invalid format"

# টেস্ট
tests = ["12:20:20 PM", "12:20:20 AM", "01:30:45 PM", "01:30:45 AM", "11:59:59 PM"]
for t in tests:
    print(f"{t} -> {convert_12_to_24(t)}")

আউটপুট

12:20:20 PM -> 12:20:20
12:20:20 AM -> 00:20:20
01:30:45 PM -> 13:30:45
01:30:45 AM -> 01:30:45
11:59:59 PM -> 23:59:59

স্ট্রিং স্লাইসিং দিয়ে (মূল আর্টিকেলের পদ্ধতি - বাগ fik্স করা)


def convert_12_to_24_manual(s):
    s = s.strip().upper()
    period = s[-2:]  # AM বা PM
    time_part = s[:-2].strip()  # HH:MM:SS
    hour = int(time_part[:2])
    
    if period == "AM":
        if hour == 12:
            hour = 0
    elif period == "PM":
        if hour != 12:
            hour += 12
    else:
        return "Invalid period"
    
    return f"{hour:02d}{time_part[2:]}"

# টেস্ট
print(convert_12_to_24_manual("12:20:20 PM"))  # 12:20:20
print(convert_12_to_24_manual("12:20:20 AM"))  # 00:20:20
print(convert_12_to_24_manual("01:30:45 PM"))  # 13:30:45

কারেন্ট টাইম কনভার্ট (মূল আর্টিকেলের উদাহরণ)


import datetime

dt = datetime.datetime.now()
time_12h = dt.strftime("%I:%M:%S %p")  # ১২ ঘণ্টা ফরম্যাটে
time_24h = dt.strftime("%H:%M:%S")     # ২৪ ঘণ্টা ফরম্যাটে

print(f"12-hour: {time_12h}")
print(f"24-hour: {time_24h}")

নোট

  • datetime.strptime/strftime ব্যবহার করুন — এটি লোকেল, লিডিং জিরো, ভ্যালিডেশন স্বয়ংক্রিয় হ্যান্ডেল করে।
  • ম্যানুয়াল পার্সিংয়ে এজ কেস (১২ AM/PM, ইনভ্যালিড ইনপুট) হ্যান্ডল করা জরুরি।
  1. পাইথন প্রোগ্রাম কিলোমিটারকে মাইলে কনভার্ট করা

  2. হেক্সাডেসিমেল স্ট্রিংকে দশমিকে রূপান্তর করার পাইথন প্রোগ্রাম

  3. পাইথনে ১২ ঘণ্টা ফরম্যাটকে ২৪ ঘণ্টায় কনভার্ট করা

  4. পাইথনে সময় সেকেন্ডকে h:m:s ফরম্যাটে কনভার্ট করবেন?