gpt4 book ai didi

flutter - Dart |无需计算即可将秒数转换为 DateTime

转载 作者:行者123 更新时间:2023-12-02 16:09:56 26 4
gpt4 key购买 nike

有时我们需要日、时、分、秒来倒计时,但我们所知道的只是秒。

例如:

  • 1s -> 0day 0hour 0minute 1s
  • 10s -> 0day 0hour 0minute 10s
  • 100s -> 0day 0hour 1minute 40s

这是我的解决方案:

void _test() {
var diffseconds = 100;

var seconds = diffseconds % 60;
var minute = diffseconds ~/ 60 % 60;
var hour = diffseconds ~/ 60 ~/ 60 % 24;
var day = diffseconds ~/ 60 ~/ 60 ~/ 24;

print('day=$day');
print('hour=$hour');
print('minute=$minute');
print('second=$seconds');
}

如果我可以将秒更改为 DateTime,我可以使用 date.day 等轻松获得日期,我不再需要计算了。

所以我想知道是否有任何 api 或简单的方法来无需任何计算

我想知道更好的解决方案。

最佳答案

我不认为此功能内置于 Dart 中,但您可以稍微轻松地将以下扩展添加到 Duration,这或多或少是您已经在做的事情:

extension RestTimeOnDuration on Duration {
int get inDaysRest => inDays;
int get inHoursRest => inHours - (inDays * 24);
int get inMinutesRest => inMinutes - (inHours * 60);
int get inSecondsRest => inSeconds - (inMinutes * 60);
int get inMillisecondsRest => inMilliseconds - (inSeconds * 1000);
int get inMicrosecondsRest => inMicroseconds - (inMilliseconds * 1000);
}

void main() {
const duration = Duration(seconds: 123);
print('Days: ${duration.inDaysRest}'); // 0
print('Hours: ${duration.inHoursRest}'); // 0
print('Minutes: ${duration.inMinutesRest}'); // 2
print('Seconds: ${duration.inSecondsRest}'); // 3
print('Milliseconds: ${duration.inMillisecondsRest}'); // 0
print('Microseconds: ${duration.inMicrosecondsRest}'); // 0
}

关于flutter - Dart |无需计算即可将秒数转换为 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68296498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com