fix bugs.

This commit is contained in:
2025-12-05 10:48:31 +08:00
parent fbc2a57593
commit 4136077e98
15 changed files with 96 additions and 21 deletions

View File

@@ -34,11 +34,23 @@ class CountdownTimer {
job?.cancel()
}
/**
* 将毫秒数格式化为 HH:MM:SS 格式的时间字符串
* @param milliseconds 毫秒数(支持 0、负数、超大数值
* @return 格式化结果,如 3670000 毫秒 → 01:01:10125000 毫秒 → 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)
}
}