繁体   English   中英

将分钟转换为天、小时和剩余分钟

[英]Converting minutes to days, hours, and remaining minutes

试图将每集总数的分钟数转换为天数、小时数和分钟数,但我无法弄清楚小时数的正确公式。

 function minToDays(min, ep) { let days = parseInt((min * ep) / 1440); let hours = parseInt(((min * ep) % 60)); let remainingMin = hours % 60; return `${days} day(s) and ${hours} hour(s) and ${remainingMin} minutes(s).`; } console.log(minToDays(20, 800)); //11 days, 2 hours, 40 minutes

有点笨拙,但这是查看逻辑的快速方法 - 每次您需要查看剩余分钟数。 我相信有更多时间的人会给你一个更优雅的答案:

 function minToDays(min, ep) { let days = Math.floor((min * ep) / 1440); let remainingTime = parseInt((min*ep) - Math.floor((days *1440))); let hours = Math.floor((remainingTime / 60)); let remainingMin = Math.floor(remainingTime - (hours*60)); return `${days} day(s) and ${hours} hour(s) and ${remainingMin} minutes(s).`; } console.log(minToDays(20, 800)); //11 days, 2 hours, 40 minutes

这是教科书问题。 算子称为余数(%)

余数是什么:这源于数学,或者我认为这是普通的数学运算符,用于编程和大学数学。

如何使用/定义余数运算符

余数运算符(我知道这个运算符是数学中的模运算符)只是计算余数。

101%10 -> 1

81%7 ->4

81/7 -> 11.57

所以,余数运算符只计算除法后的余数。

这应该做。

 function minutesToDays(min,ep ) { let totalMinutes = min * ep, cd = 24 * 60, ch = 60, day = Math.floor(totalMinutes / cd), hour = Math.floor((totalMinutes - day * cd) / ch), minute = Math.round(totalMinutes - day * cd - hour * ch), pad = n => { return n < 10? '0' + n: n; }; if (minute === 60) { hour++; minute = 0; } if (hour === 24) { day++; hour = 0; } return [(day > 0? `${day} days`: ""), (hour > 0? `${pad(hour)} hours `: ''), `${pad(minute)} minutes`].join(" "); } console.log(minutesToDays(20, 800))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM