如何根据自定义日期 Dart 对列表进行排序

托尼哈特

我有以下函数根据日期对列表进行排序,但如果日期时间在一个月的第一天之前,它会创建双列表

我想要的是它根据月份的第一天对列表进行排序并在第一天之前删除所有项目


List expenseData= [

 {id: 1242, detail: milk, amount: $5, date: 2021-06-21 00:00:00:000},
 {id: 1242, detail: egg, amount: $2, date: 2021-05-15 00:00:00:000},
 {id: 1243, detail: bread, amount: $3, date: 2021-05-13 00:00:00:000},
 {id: 1244, detail: butter, amount: $7, date: 2021-05-22 00:00:00:000},
 {id: 1247, detail: butter, amount: $7, date: 2021-06-10 00:00:00:000},

];

pieDatathisMonth() {
    var now = DateTime.now();
    var firstDayMonth = DateTime(now.year, now.month, 1);
    var sortExpData = expenseData;
    sortExpData.sort((d1, d2) {
      return d1.date.compareTo(firstDayMonth);
    });
    sortExpData.toList();
    thisMonthExpense.addAll(sortExpData);
    update();
  }
纪尧姆肉酱

这是对您的排序方法的修复。我做了一些DateTime演员,因为我expenseData的格式为Map<String, dynamic>.

void pieDatathisMonth() {
  var now = DateTime.now();
  var firstDayMonth = DateTime(now.year, now.month, 1);
  var sortExpData = List<Map<String, dynamic>>.from(expenseData);
  
  // remove all data before firstday because you don't need to sort them.
  sortExpData.removeWhere((e) => (e['date'] as DateTime).isBefore(firstDayMonth));
  
  sortExpData.sort((d1, d2) {
    return (d1['date'] as DateTime).compareTo(d2['date'] as DateTime);
  });
  sortExpData.toList();
  thisMonthExpense.addAll(sortExpData);
  update();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据面值对 dart 中的整数列表进行排序?

如何在Dart中按“枚举”对列表进行排序?

根据对另一个列表的排序方式在Dart中对列表进行排序

如何使用Dart的http传递自定义对象列表?

如何根据 dateTIme 和 TimeOfDay 对 flutter/dart 中的列表项进行排序?

如何根据 dart、Flutter 中订单的交货时间对元素列表进行排序?

如何根据自定义算法对工作表中的数据列表进行排序?

如何根据整数和字符值对自定义列表进行排序

如何使用 lodash 的 _sortBy() 根据自定义要求按字母顺序对这个列表进行排序?

如何根据 2 个自定义列表对数据集进行排序?

以自定义方式对列表进行排序

如何使用dart null-safety对可能包含null值的列表进行排序

如何对从 dart/flutter 中的 List.generate 方法获得的列表进行排序?

对Dart中的对象列表进行排序

如何在Dart中对MappedListIterable进行排序

如何根据变量进行自定义列表分组?

如何根据3个项目对Dart集合进行排序?

根据日期和 ID 自定义排序大型 Json

具有自定义列表的IndexOf(Flutter-Dart)

如何在 dart-flutter 中对这样的时间列表进行排序 [ 2:00 AM , 10:00 AM , 6:00 PM ]?

根据变量对自定义Java类的数组列表进行排序

如何按值对字典条目列表进行排序(“自定义排序”)

对自定义类类型中的控件列表进行排序

按自定义顺序对列表进行排序

在Android中对自定义对象的数组列表进行排序

按给定的自定义顺序对列表进行排序

使用自定义列表对Dataweave进行排序

熊猫基于列表对行进行自定义排序

在 kotlin 中对自定义对象列表进行排序