当前位置: 首页 > 知识库问答 >
问题:

如何以00:00格式根据时间对列表进行排序/排序?

袁康裕
2023-03-14

我有这个列表,我想在我的屏幕上按照时间[“time in”]对它进行排序。有人知道我该怎么做吗?

[{weekday: segunda, description: Química, nametag: Estudos, numbercolortags: [33, 150, 243], timein: 18:30, timeout: 20:00}, {weekday: segunda, description: Física, nametag: Estudos, numbercolortags: [33, 150, 243], timein: 11:00, timeout: 12:00}, {weekday: segunda, description: Biologia, nametag: Estudos, numbercolortags: [33, 150, 243], timein: 22:00, timeout: 23:00}]

共有1个答案

诸葛奇玮
2023-03-14

可能的解决方案:

void main() {
  json.sort((x, y) => '${x['time']}'.seconds.compareTo('${y['time']}'.seconds));
  for (final element in json) {
    print(element);
  }
}

final json = [
  {'id': 1, 'time': '10:00:01'},
  {'id': 3, 'time': '30:00'},
  {'id': 2, 'time': '20:00'},
  {'id': 4, 'time': '40:00'},
  {'id': 0, 'time': '10:00'},
];

extension _Time on String {
  int get seconds {
    var hours = 0;
    var minutes = 0;
    var seconds = 0;
    final parts = split(':');
    switch (parts.length) {
      case 2:
        minutes = _toInt(parts[0], 59);
        seconds = _toInt(parts[1], 59);
        break;
      case 3:
        hours = _toInt(parts[0], 23);
        minutes = _toInt(parts[1], 59);
        seconds = _toInt(parts[2], 59);
        break;
      default:
        _error();
    }

    return hours * 3600 + minutes * 60 + seconds;
  }

  void _error() {
    throw FormatException('Invalid time format: $this');
  }

  int _toInt(String part, int max) {
    final result = int.tryParse(part, radix: 10);
    if (result == null) {
      _error();
    }

    if (result < 0 || result > max) {
      _error();
    }

    return result;
  }
}

结果:

{id: 0, time: 10:00}
{id: 1, time: 10:00:01}
{id: 2, time: 20:00}
{id: 3, time: 30:00}
{id: 4, time: 40:00}
 类似资料:
  • 问题内容: 我有以下清单 我想根据其子列表的长度对列表进行排序。结果应为: 问题答案: 使用和中可用的参数。它指定一个参数的功能,该参数用于从每个列表元素中提取比较键

  • 我目前有一个应用程序,可以显示1.5公里半径内附近的医院,它看起来是这样的: 我遇到的麻烦是,我不知道如何根据他们从最低到最高的计算距离来排序卡片。 我创建了一个来存储计算的距离列表,并用对其进行排序。 我如何确保小部件将遵循排序的距离值的顺序?

  • 我是Java流的新手,我只想对我的对象的键进行排序。 所以,我尝试了这样的方法,效果很好 这是根据我想要的分类。 但我得到的结果在

  • 问题内容: 我想对以下数据框进行排序: 我想对它进行排序,以便根据列表对LSE列进行重新排序: 当然,其他列也需要相应地重新排序。有没有办法在熊猫里做到这一点? 问题答案: pandas0.15版中对s的改进支持使您可以轻松做到这一点: 如果这只是临时排序,则可能不希望将LSE列保留为a ,但是如果您希望这种排序能够在不同的上下文中使用几次,则是一个很好的解决方案。 在更高版本的,中,已被替换为,

  • 问题内容: 我在用Java重置小时数时遇到问题。对于给定的日期,我要将小时设置为00:00:00。 这是我的代码: 问题是,有时时间是,有时是时间,当我查询数据库中保存的实体以及查询的实际实体时间(存储的实际时间)失败时。 我知道! 我正在使用AppEngine。这是Appengine错误,问题还是其他问题?还是取决于其他因素? 问题答案: 使用另一个常数代替,使用。 使用0-11(与AM / P

  • 编辑:对于同样的问题,我尝试编写一个比较器。但它不起作用