Flutter 颤振时间以小时为单位加倍

Flutter 颤振时间以小时为单位加倍,flutter,dart,Flutter,Dart,我正在尝试将双精度值(例如9.5)转换为相应的小时/分钟值(例如9.30)。我还希望使用此值执行计算,但将其作为时间值处理(例如,将23和2相加应得到1,因为小时数应为24小时) 我已经尝试将该值转换为DateTime,但它显示“无效的日期格式”。应该可以 void main(){ 打印(getTimeStringFromDouble(9.5));//9:30 打印(getTimeStringFromDouble(25.0));//1:0 } 字符串getTimeStringFromDouble

我正在尝试将双精度值(例如9.5)转换为相应的小时/分钟值(例如9.30)。我还希望使用此值执行计算,但将其作为时间值处理(例如,将23和2相加应得到1,因为小时数应为24小时)

我已经尝试将该值转换为DateTime,但它显示“无效的日期格式”。

应该可以

void main(){
打印(getTimeStringFromDouble(9.5));//9:30
打印(getTimeStringFromDouble(25.0));//1:0
}
字符串getTimeStringFromDouble(双值){
如果(值<0)返回“无效值”;
int flooredValue=value.floor();
双小数=值-下限值;
字符串hourValue=getHourString(FloorRedValue);
字符串minuteString=getMinuteString(小数);
返回“$hourValue:$minuteString”;
}
字符串getMinuteString(双小数){
返回“${(十进制值*60).toInt()}”.padLeft(2,'0');
}
字符串getHourString(int FloorRedValue){
返回“${flooredValue%24}”.padLeft(2,'0');
}

你说的25应该是什么意思?你能发布一些代码来告诉我们你到目前为止尝试了什么吗?没有内置的方法可以按照你描述的方式将
双精度
转换为
日期时间
。你需要手动实现这样的转换,就像你手动实现一样(例如,分开整数和小数部分,将整数部分修改为24,并使用小数部分计算分钟数)。@AjilO。就像在24小时,它应该是一,就像一个时钟。所以我可以用它来做实际的数学运算,例如22点+8小时。@amugofjava请看我回复AjilO.1。您可能应该断言
value>=0
以排除负数,2
getMinuteString()
应该执行
padLeft(2,'0')
@jamesdlinYep。谢谢