如何在 DART (Flutter) 中舍入最接近 30 分钟间隔的日期时间?

Nir*_*raj 2 datetime date dart flutter

我想将 DateTime 舍入到最接近的 30 分钟。DART 中是否提供舍入机制?

Kyr*_*her 5

我今天也遇到了类似的问题,但问题是要限制在接下来的 15 分钟内。

DateTime nearestQuarter(DateTime val) {
  return DateTime(val.year, val.month, val.day, val.hour,
    15, 30, 45, 60][(val.minute / 15).floor()]);
}
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下

DateTime nearestHalf(DateTime val) {
  return DateTime(val.year, val.month, val.day, val.hour,
    [30, 60][(val.minute / 30).floor()]);
}
Run Code Online (Sandbox Code Playgroud)

我刚刚注意到你说“最近半小时”

DateTime nearestHalf(DateTime val) {
  return DateTime(val.year, val.month, val.day, val.hour,
    [0, 30, 60][(val.minute / 30).round()]);
}
Run Code Online (Sandbox Code Playgroud)

https://francescocirillo.com/pages/anti-if-campaign