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

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


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা num নেবে যা সেকেন্ডের সংখ্যা নির্দেশ করে।

ফাংশনটি একটি স্ট্রিং তৈরি করবে এবং ফেরত দেবে যাতে সেই সেকেন্ডগুলোর মধ্যে কত বছর, দিন, ঘন্টা এবং মিনিট আছে তা থাকে (যদি থাকে)।

এই প্রশ্নের উদ্দেশ্যে আমরা ধরে নেব যে সব বছর ৩৬৫ দিনের।

উদাহরণস্বরূপ, যদি ইনপুট হয় –

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-এ DATETIME কলামে ১০ বছর ৩ মাস ২২ দিন ১০ ঘণ্টা ৩০ মিনিট যোগ করা

  2. সেকেন্ডকে দিন, ঘন্টা, মিনিট ও সেকেন্ডে কনভার্ট করা C++-এ

  3. C++ প্রোগ্রাম: আওয়ারকে মিনিট ও সেকেন্ডে কনভার্ট করা

  4. পাইথন প্রোগ্রাম সেকেন্ডকে ঘন্টা, মিনিট ও সেকেন্ডে কনভার্ট করা