ধরুন আমাদের এই ফরম্যাটে দুটি বার আছে "Day dd Mon yyyy hh:mm:ss +/-xxxx", যেখানে Day হল তিন বর্ণের দিন যার প্রথম অক্ষর বড় হাতের। সোম হল মাসের নাম তিনটি অক্ষরে এবং অবশেষে + বা - xxxx টাইমজোনকে প্রতিনিধিত্ব করে উদাহরণস্বরূপ +0530 নির্দেশ করে যে এটি GMT থেকে 5 ঘন্টা 30 মিনিট বেশি (অন্যান্য ফর্ম্যাট যেমন dd, hh, mm, ss স্ব-ব্যাখ্যামূলক)। আমাদের সেকেন্ডে দুটি টাইমস্ট্যাম্পের মধ্যে পরম পার্থক্য খুঁজে বের করতে হবে।
পাইথন ব্যবহার করে এটি সমাধান করতে আমরা datetime লাইব্রেরি ব্যবহার করব। strptime() নামে একটি ফাংশন আছে এটি স্ট্রিং ফরম্যাট করা তারিখকে ডেটটাইম অবজেক্টে রূপান্তর করবে। নিচের মত কিছু বিন্যাস নির্দিষ্টকরণ আছে −
- %a দিনটিকে তিনটি অক্ষরের বিন্যাসে নির্দেশ করে
- %d সংখ্যাসূচক বিন্যাসে দিন নির্দেশ করে
- %b তিন অক্ষরের বিন্যাসে মাস নির্দেশ করে
- %Y yyyy বিন্যাসে বছর নির্দেশ করে
- %H hh ফরম্যাটে ঘন্টা নির্দেশ করে
- %M মিমি বিন্যাসে মিনিট নির্দেশ করে
- %S ss ফরম্যাটে সেকেন্ড নির্দেশ করে
- %z +/- xxxx ফরম্যাটে টাইমজোন নির্দেশ করে
সুতরাং, যদি ইনপুটটি হয় t1 ="Thu 15 Jul 2021 15:10:17 +0530" t2 ="Thu 15 Jul 2021 20:25:29 +0720", তাহলে আউটপুট হবে 12312
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- t1 :=প্রদত্ত স্ট্রিং থেকে উপরে উল্লিখিত বিন্যাসে প্রথমবারের বিন্যাস পরিবর্তন করুন
- t2 :=প্রদত্ত স্ট্রিং থেকে উপরে উল্লিখিত বিন্যাসে দ্বিতীয়বার বিন্যাস পরিবর্তন করুন
- সেকেন্ডে t1 এবং t2 এর মধ্যে ফেরত পার্থক্য
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
from datetime import datetime def solve(t1, t2): t1 = datetime.strptime(t1, "%a %d %b %Y %H:%M:%S %z") t2 = datetime.strptime(t2, "%a %d %b %Y %H:%M:%S %z") return abs(int((t1-t2).total_seconds())) t1 = "Thu 15 Jul 2021 15:10:17 +0530" t2 = "Thu 15 Jul 2021 20:25:29 +0720" print(solve(t1, t2))
ইনপুট
"Thu 15 Jul 2021 15:10:17 +0530", "Thu 15 Jul 2021 20:25:29 +0720"
আউটপুট
12312