flutter - 以小时为单位颤动两倍于时间
问题描述
我正在尝试将双精度值(例如 9.5)转换为相应的小时/分钟值(例如 9.30)。我也想使用这个值进行计算,但像处理时间值一样处理它(例如,添加 23 和 2 应该得到 1,因为小时应该在 24 小时左右环绕)。
我已经尝试将该值转换为 DateTime,但它显示“日期格式无效”。
解决方案
这应该这样做
void main() {
print(getTimeStringFromDouble(9.5)); // 9:30
print(getTimeStringFromDouble(25.0)); // 1:0
}
String getTimeStringFromDouble(double value) {
if (value < 0) return 'Invalid Value';
int flooredValue = value.floor();
double decimalValue = value - flooredValue;
String hourValue = getHourString(flooredValue);
String minuteString = getMinuteString(decimalValue);
return '$hourValue:$minuteString';
}
String getMinuteString(double decimalValue) {
return '${(decimalValue * 60).toInt()}'.padLeft(2, '0');
}
String getHourString(int flooredValue) {
return '${flooredValue % 24}'.padLeft(2, '0');
}
推荐阅读
- python - 来自 HTML 的用户输入,用于 Python 和 Selenium
- r - SVM 的测试集中预测值的数量是否正确?
- ms-access - MS Access 表单中的拼写检查
- fortran - 变量名中是否不再允许使用空格
- ios - 如何在启动期间不使 Intune Wrapped App 崩溃
- javascript - 使用 Firefox 插件的 targetElementId 检索 TargetElement
- xpath - 当 resource_ids 不可用时在 appium 上定位元素
- c++ - 如何使用布尔函数检查 C++ 中的密码强度
- python - 你如何使用用户的功能?
- vim - 如何在 WebStorm 中实现自定义命令?