JavaScript 中秒轉換成年天小時和分鐘
問題
我們要求編寫一個 JavaScript 函式,該函式接收一個數字 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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP