কম্পিউটার

জাভাস্ক্রিপ্টে সেকেন্ডকে বছরের দিন ঘন্টা এবং মিনিটে রূপান্তর করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা, num নেয়, যা প্রথম এবং একমাত্র যুক্তি হিসাবে সেকেন্ডের সংখ্যাকে উপস্থাপন করে৷

আমাদের ফাংশনটি তখন একটি স্ট্রিং তৈরি করে ফেরত দেয় যাতে সেই সেকেন্ডের মধ্যে থাকা বছর, দিন, ঘন্টা এবং মিনিটের তথ্য থাকে, স্পষ্টতই যদি তা থাকে।

এই প্রশ্নের উদ্দেশ্যে, আমরা বিবেচনা করি যে সমস্ত বছরে 365 দিন আছে

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −

const num = 5454776657;

তারপর আউটপুট −

হওয়া উচিত
const output = '172 years, 353 days, 23 hours, 44 minutes and 17 seconds';

উদাহরণ

নিম্নলিখিত কোড -

const findTime = (num) => {
   if(num < 1){
      return '0'
   };
   const qualifier = num => (num > 1 ? 's' : '')
   const numToStr = (num, unit) => num > 0 ? ` ${num}
   ${unit}${qualifier(num)}` : ''
   const oneMinute = 60;
   const oneHour = oneMinute * 60;
   const oneDay = oneHour * 24;
   const oneYear = oneDay * 365;
   const times = {
      year: ~~(num / oneYear),
      day: ~~((num % oneYear) / oneDay),
      hour: ~~((num % oneDay) / oneHour),
      minute: ~~((num % oneHour) / oneMinute),
      second: num % oneMinute,
   };
   let str = '';
   for (let [key, value] of Object.entries(times)) {
      str += numToStr(times[key], key)
   }
   const arr = str.trim().split(' ')
   const res = []
   arr.forEach((x, i) => {
      if (i % 2 === 0 && i !== 0) res.push(i === arr.length - 2 ? 'and' : ',')
      res.push(x)
   })
   return res.join(' ').replace(/\s,/g, ',')
}
console.log(findTime(5454776657));

আউটপুট

নিম্নোক্ত কনসোল আউটপুট -

172 years, 353 days, 23 hours, 44 minutes and 17 seconds

  1. MySQL আপডেট ডেটটাইম কলাম মান এবং 10 বছর 3 মাস 22 দিন এবং 10 ঘন্টা, 30 মিনিট বিদ্যমান ডেটা যোগ করুন?

  2. C++ এ সেকেন্ডকে দিন, ঘন্টা, মিনিট এবং সেকেন্ডে রূপান্তর করা হচ্ছে

  3. ঘন্টাকে মিনিট এবং সেকেন্ডে রূপান্তর করার জন্য C++ প্রোগ্রাম

  4. সেকেন্ডকে ঘন্টা, মিনিট এবং সেকেন্ডে রূপান্তর করতে পাইথন প্রোগ্রাম