如何在Ruby中将秒数转换为可读格式(如111.700秒转1:51.7)
秒数转可读时间格式的实现方案
核心逻辑是把总秒数拆分为分钟和剩余秒数,再将剩余秒数保留一位小数后拼接成分钟:秒数的格式,以下是具体实现:
Python 实现
def format_seconds(total_seconds): # 计算整数分钟数 minutes = int(total_seconds // 60) # 计算剩余秒数 remaining_seconds = total_seconds % 60 # 格式化剩余秒数为1位小数,自动去除末尾多余的0 formatted_sec = "{0:.1f}".format(remaining_seconds) # 处理如"51.0"这类情况,转为"51" if formatted_sec.endswith('.0'): formatted_sec = formatted_sec[:-2] return f"{minutes}:{formatted_sec}" # 测试示例 print(format_seconds(111.700)) # 输出: 1:51.7 print(format_seconds(120.0)) # 输出: 2:0 print(format_seconds(75.300)) # 输出: 1:15.3
JavaScript 实现
function formatSeconds(totalSeconds) { // 取整数分钟 const minutes = Math.floor(totalSeconds / 60); // 计算剩余秒数并保留1位小数 let remainingSeconds = (totalSeconds % 60).toFixed(1); // 去除末尾的.0 if (remainingSeconds.endsWith('.0')) { remainingSeconds = remainingSeconds.slice(0, -2); } return `${minutes}:${remainingSeconds}`; } // 测试示例 console.log(formatSeconds(111.700)); // 输出: "1:51.7" console.log(formatSeconds(90.0)); // 输出: "1:30"
逻辑拆解
- 分钟数:总秒数整除60,取整数部分,比如
111.7 // 60 = 1。 - 剩余秒数:总秒数对60取模,得到不足1分钟的部分,比如
111.7 % 60 = 51.7。 - 格式处理:将剩余秒数保留1位小数,同时去掉末尾多余的
.0,保证输出简洁符合预期。
内容的提问来源于stack exchange,提问作者Manav
相关产品推荐
相关产品推荐

