#list #flutter #sorting #dart
Вопрос:
Как я могу классифицировать список по месяцам
допустим, у меня есть список примеров, как показано ниже :
Record(
id: '01',
nameFood: 'ravioli',
date : 2021/may/14,
price: 20
),
Record(
id: '02',
nameFood: 'cheese garlic',
date : 2021/june/02,
price: 30,
),
Record(
id: '03',
nameFood: 'steak',
date : 2021/march/21
price 25,
),
Я хочу классифицировать его следующим образом
June(
nameFood: steak,
total price: 240,
),
and etc
проблема в том, что я не знаю, как фильтровать каждый список(месяц), потому что каждый месяц имеет разную продолжительность дней, например 30,31 и 28
Ответ №1:
Если вы сохраняете свои даты в качестве даты-времени, вы можете попробовать использовать номер месяца. Я здесь нахожусь в затруднении, предполагая, что у вас есть Список объектов типа Запись, где находится Запись.
class Record {
Record(
this.id,
this.price,
this.date,
this.nameFood,
);
final String id;
final double price;
final DateTime date;
final String nameFood;
}
Вы можете просмотреть свой список и делать с ним все, что хотите, вот так.
for (final record in _listOfRecords) {
final _monthOfRecord = record.date.month; // Gives the month number. January = 1, April = 4, etc.
// Do other stuff, based on the current monthNumber
switch (_monthOfRecord) {
case 1:
// Do something
break;
....
default:
break;
}
}