TimeOfDayドキュメントには比較演算子がなく、プリミティブ比較は機能しません。私が今考えることができる唯一の解決策は、TimeOfDayをDateTimeに変換し、DateTimeの差分メソッドを使用することです。
誰かがより良い解決策を持っていますか?
それをdoubleに変換してから比較します。
double toDouble(TimeOfDay myTime) => myTime.hour + myTime.minute/60.0
両方の値を分数に変換し、それらを比較して差を計算しました:)
TimeOfDay now = TimeOfDay.now();
int nowInMinutes = now.hour * 60 + now.minute;
TimeOfDay testDate = TimeOfDay(hour: 2, minute: 20);
int testDateInMinutes = testDate.hour * 60 + testDate.minute;
これは不可能だと思います。 DateTimeで.subtract
を.difference
として使用することもできます
@Lucasのアイデアのおかげで、時間と分を計算できます。
TimeOfDay yourTime ;
TimOfDay nowTime = TimeOfDay.now()
double _doubleyourTime = yourTime.hour.toDouble() +
(yourTime.minute.toDouble() / 60);
double _doubleNowTime = nowTime.hour.toDouble() +
(nowTime.minute.toDouble() / 60);
double _timeDiff = _doubleOpenTime - _doubleNowTime;
double _hr = _timeDiff.truncate();
double _minute = (_timeDiff - _timeDiff.truncate()) * 60;
print('Here your Happy $_hr Hour and _minute min');
十分な情報がないため、2つのTimeOfDay
変数を実際に比較することはできません。ダートは、比較したい日、月、年を知りません。あなたが言ったように、唯一の方法はTimeOfDay
をDateTime
に変換することです。
それ以外の場合は、他の回答で提案されているようにTimeOfDay
をdouble
にいつでも変換して、差を計算できます。