0

我正在使用颤振制作应用程序并使用 hive 创建数据库,用户将获得一个选项来根据某些字段保存交易详细信息如下图 现在我想要的是基于交易日期的所有交易的总和特定月份,然后在这样的特定页面上显示其总和示例图像

我创建表单字段的代码

class Transaction extends HiveObject {
 @HiveField(0)
 String paymentMode;
 @HiveField(1)
 bool unnecessary;
 @HiveField(2)
 String title;
 @HiveField(3)
 DateTime createdOn;
 @HiveField(4)
 int amount;
 @HiveField(5)
 String category;

 Transaction({
  this.paymentMode = "",
  this.unnecessary = false,
  this.title = "",
  this.createdOn,
  this.amount = 0,
  this.category="",
  });

  Transaction.fromJson(Map<String, dynamic>  map) :
    paymentMode = map['paymentMode']  ?? "",
    unnecessary = map['unnecessary']  ?? false,
    title = map['title']  ?? "",
    createdOn = map['createdOn']  ?? DateTime.now(),
    amount = map['amount']  ?? 0,
    category = map['category'] ?? "";

Map<String, dynamic> toJson() => {
    'paymentMode': paymentMode,
    'unnecessary': false,
    'title': title,
    'createdOn': createdOn,
    'amount': amount,
    'category': category,
     };

  Transaction copyWith({
    String paymentMode,
    bool unnecessary,
    String title,
    DateTime createdOn,
    User user,
    int amount,
    String category,
    }) {
    return Transaction(
     paymentMode: paymentMode ?? this.paymentMode,
     unnecessary: unnecessary ?? this.unnecessary,
     title: title ?? this.title,
     createdOn: createdOn ?? this.createdOn,
     amount: amount ?? this.amount,
     category: category ?? this.category,
       );
   }

编码

4

1 回答 1

0

我假设您有一个Transaction对象列表,您可以使用排序功能简单地对该列表进行排序。

listOftransactions.sort((a,b)=>a.createdOn.compareTo(b.createdOn));

这将根据时间戳对列表进行排序,如果您想反转顺序,只需在内联函数中替换 a为。b

于 2021-04-12T18:45:49.040 回答