public static String formatElapsedTime(Context context, double millis, boolean inclSeconds) { StringBuilder sb = new StringBuilder(); int seconds = (int) Math.floor(millis / 1000); if (!inclSeconds) { // Round up. seconds += 30; } int days = 0, hours = 0, minutes = 0; if (seconds > SECONDS_PER_DAY) { days = seconds / SECONDS_PER_DAY; seconds -= days * SECONDS_PER_DAY; } if (seconds > SECONDS_PER_HOUR) { hours = seconds / SECONDS_PER_HOUR; seconds -= hours * SECONDS_PER_HOUR; } if (seconds > SECONDS_PER_MINUTE) { minutes = seconds / SECONDS_PER_MINUTE; seconds -= minutes * SECONDS_PER_MINUTE; } if (inclSeconds) { if (days > 0) { sb.append(context.getString(R.string.battery_history_days, days, hours, minutes, seconds)); } else if (hours > 0) { sb.append(context.getString(R.string.battery_history_hours, hours, minutes, seconds)); } else if (minutes > 0) { sb.append(context.getString(R.string.battery_history_minutes, minutes, seconds)); } else { sb.append(context.getString(R.string.battery_history_seconds, seconds)); } } else { if (days > 0) { sb.append(context.getString(R.string.battery_history_days_no_seconds, days, hours, minutes)); } else if (hours > 0) { sb.append(context.getString(R.string.battery_history_hours_no_seconds, hours, minutes)); } else { sb.append(context.getString(R.string.battery_history_minutes_no_seconds, minutes)); } } return sb.toString(); } }
时间: 2024-02-10 10:32:38 浏览: 133
android surfaceView实现播放视频功能
这段代码定义了一个名为 `formatElapsedTime` 的静态方法,用于将以毫秒为单位的时间转换为可读的格式化字符串。该方法有三个参数:
- `context`:上下文对象,用于获取资源字符串。
- `millis`:需要转换的时间,以毫秒为单位。
- `inclSeconds`:是否需要包含秒数,如果设置为 `true`,则返回的字符串将包含秒数,否则不包含。
该方法内部使用了一个 `StringBuilder` 对象 `sb`,用于构建最终的字符串。首先将毫秒转换为秒数,并根据是否需要包含秒数进行处理。然后根据秒数计算出天数、小时数、分钟数和剩余的秒数,并根据需要包含秒数的情况构建最终的字符串。最后将构建完成的字符串返回。
阅读全文