fix bugs.
This commit is contained in:
@@ -34,11 +34,23 @@ class CountdownTimer {
|
||||
job?.cancel()
|
||||
}
|
||||
|
||||
/**
|
||||
* 将毫秒数格式化为 HH:MM:SS 格式的时间字符串
|
||||
* @param milliseconds 毫秒数(支持 0、负数、超大数值)
|
||||
* @return 格式化结果,如 3670000 毫秒 → 01:01:10,125000 毫秒 → 00:02:05
|
||||
*/
|
||||
fun formatTime(milliseconds: Long): String {
|
||||
val seconds = (milliseconds / 1000).toInt()
|
||||
val minutes = seconds / 60
|
||||
val remainingSeconds = seconds % 60
|
||||
return String.format("%02d:%02d", minutes, remainingSeconds)
|
||||
// 1. 处理负数/0:转为非负,避免时间为负
|
||||
val nonNegativeMs = if (milliseconds < 0) 0 else milliseconds
|
||||
// 2. 计算总秒数(向下取整,不足1秒按0算)
|
||||
val totalSeconds = (nonNegativeMs / 1000).toInt()
|
||||
// 3. 拆分 小时、分钟、秒
|
||||
val hours = totalSeconds / 3600 // 1小时=3600秒
|
||||
val remainingSecondsAfterHour = totalSeconds % 3600 // 小时剩余秒数
|
||||
val minutes = remainingSecondsAfterHour / 60 // 分钟
|
||||
val seconds = remainingSecondsAfterHour % 60 // 秒
|
||||
// 4. 格式化:HH/MM/SS 均补0为2位(如 1小时1分5秒 → 01:01:05)
|
||||
return String.format("%02d:%02d:%02d", hours, minutes, seconds)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user