我正在尝试将双精度值(例如 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');
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5625 次 |
最近记录: |