【发布时间】:2019-06-15 20:18:09
【问题描述】:
我正在尝试按升序对 DateTime 时间元素列表进行排序。我已经意识到像 > 或
【问题讨论】:
我正在尝试按升序对 DateTime 时间元素列表进行排序。我已经意识到像 > 或
【问题讨论】:
只需使用来自DateTime 的方法isAfter()、isBefore() 或isAtSameMomentAs()。
其他替代方法,使用compareTo(DateTime other),如文档中所述:
将此 DateTime 对象与 [其他] 进行比较, 如果值相等,则返回零。
如果此 DateTime [isBefore] [other] 返回负值。它返回 0 如果是 [isAtSameMomentAs] [other],否则返回正值 (当这个 [isAfter] [other])。
这里是排序日期的代码示例:
void main() {
var list = [
DateTime.now().add(Duration(days: 3)),
DateTime.now().add(Duration(days: 2)),
DateTime.now(),
DateTime.now().subtract(Duration(days: 1))
];
list.sort((a, b) => a.compareTo(b));
print(list);
}
看到它工作here。
【讨论】:
这是我如何理解和实现在布尔模式下将导致真/假的代码。
DateTime valEnd = edate ;
DateTime date =DateTime.now();
bool valDate = date.isBefore(valEnd);
【讨论】: