ভূমিকা
সময় বিভ্রান্তিকর। ষাট সেকেন্ড থেকে এক মিনিট, ষাট মিনিট থেকে এক ঘন্টা, চব্বিশ ঘন্টা থেকে এক দিন (এবং সেই অস্থির am / pm এর উল্লেখ না করা!)।
আজকাল এ জাতীয় নির্বিকার থাকার কোনও জায়গা নেই, তাই আমরা একমাত্র বুদ্ধিমান বিকল্প গ্রহণ করার সিদ্ধান্ত নিয়েছি: দশমিক দিন! এর অর্থ হ'ল, প্রতিটি দিনকে 1 টি পুরো ইউনিট হিসাবে বিবেচনা করা হয়, এবং ছোট যে কোনও কিছুই সেই দিনের দশমিক ভগ্নাংশ হিসাবে লেখা হয়। সুতরাং, উদাহরণস্বরূপ: "12:00:00" "0.5" হিসাবে লেখা হবে, এবং "01:23:45" "0.058159" হিসাবে লিখিত হতে পারে।
যেহেতু নতুন সিস্টেমে অভ্যস্ত হতে সময় লাগবে, আপনাকে এমন একটি প্রোগ্রাম লেখার দায়িত্ব দেওয়া হয়েছে যা উভয় দিকের মধ্যে তাদের মধ্যে রূপান্তর করতে পারে।
চ্যালেঞ্জ
আপনার পছন্দের ভাষায় একটি প্রোগ্রাম লিখুন, যা "এইচএচ: মিমি: এসএস" এর আইএসও -8601 ফর্ম্যাটে একটি আধুনিক সময় দিয়েছে, সমান দশমিক ভগ্নাংশ ইউনিটকে ফিরিয়ে দেবে। তেমনি, দশমিক ভগ্নাংশ দেওয়া, প্রোগ্রামটির প্রাথমিকভাবে নির্দিষ্ট করা আধুনিক বিন্যাসে সময়টি ফিরিয়ে আনা উচিত।
আপনি নিম্নলিখিত অনুমানগুলি করতে পারেন:
- আধুনিক সময়ের ইনপুট এবং আউটপুট "00:00:00" থেকে "24:00:00" পর্যন্ত হতে পারে
- দশমিক সময়ের ইনপুট এবং আউটপুট "0" থেকে "1" পর্যন্ত হতে পারে এবং কমপক্ষে 5 দশমিক স্থানে (যেমন "0.12345") গ্রহণ / আউটপুট গ্রহণ করতে সক্ষম হওয়া উচিত। আরও নির্ভুলতা গ্রহণযোগ্য
- প্রোগ্রামটি ইনপুটের ভিত্তিতে কোন রূপান্তর দিকটি সম্পাদন করবে তা জানতে সক্ষম হওয়া উচিত
- আপনি সময় সম্পর্কিত ফাংশন / গ্রন্থাগার ব্যবহার করতে পারবেন না
বিজয়ীটি সংক্ষিপ্ততম কোড দ্বারা নির্ধারিত হবে যা মানদণ্ডটি সম্পাদন করে। এগুলি কমপক্ষে dec দশমিক দশমিক এক ইউনিটে বা যদি / যখন পর্যাপ্ত জমা দেওয়া হয়েছে সেখানে নির্বাচিত হবে।
উদাহরণ
এখানে জাভাস্ক্রিপ্ট কোডটির খারাপ ব্যবহার করা একটি উদাহরণ (উদাহরণস্বরূপ):
function decimalDay(hms) {
var x, h, m, s;
if (typeof hms === 'string' && hms.indexOf(':') > -1) {
x = hms.split(':');
return (x[0] * 3600 + x[1] * 60 + x[2] * 1) / 86400;
}
h = Math.floor(hms * 24) % 24;
m = Math.floor(hms * 1440) % 60;
s = Math.floor(hms * 86400) % 60;
return (h > 9 ? '' : '0') + h + ':' + (m > 9 ? '' : '0') + m + ':' + (s > 9 ? '' : '0') + s;
}
decimalDay('02:57:46'); // 0.12344907407407407
decimalDay('23:42:12'); // 0.9876388888888888
decimalDay(0.5); // 12:00:00
decimalDay(0.05816); // 01:23:45
n
যেখানে n
2 seconds n সেকেন্ড is সুতরাং '6' এর মানটিতে প্রায় 1 মিনিটের টিটিএল ছিল। '12' এর মানটির প্রায় 1 ঘন্টা টিটিএল ছিল। '15' প্রায় 8 ঘন্টা ইত্যাদি ছিল। এটি একটি বাইটকে সময়সীমা নির্ধারণ করতে এবং আপনাকে স্বল্প বা দীর্ঘ সময়ের জন্য পর্যাপ্ত নিয়ন্ত্রণ দেয়।