Skip to content

Instantly share code, notes, and snippets.

@manoellribeiro
Created March 21, 2021 22:54
Show Gist options
  • Save manoellribeiro/4e060d40d191b29fffb4b4f124678b27 to your computer and use it in GitHub Desktop.
Save manoellribeiro/4e060d40d191b29fffb4b4f124678b27 to your computer and use it in GitHub Desktop.
Daniel - Exercícios sobre listas - Transações
void main() {
// Criar uma função que retorna o valor total das transações do tipo "income" ou "outcome".
// Se o movementType for "income", então a soma deve ser apenas dos valores de transações desse tipo.
int getTotalTransactionedValueByType(List<Transaction> transactionList, MovementType movementType) {
return 0; //Apenas para evitar erro de compilação.
}
// Criar uma função que retorna o balanço total da lista de transações.
// Por exemplo, se tivermos uma lista com apenas duas transações, a primeira com valor de 100 e do tipo "income"
// e a segunda do valor de 50 com tipo "outcome", então o balanço total deve ser de 50.
int getTotalBalanceFromTransactions(List<Transaction> transactionList) {
return 0; //Apenas para evitar erro de compilação.
}
// Criar uma função para filtrar a lista de transação a partir de um valor qualquer de dias.
// Por exemplo, se o valor de "daysAgo" for 7, então a função deve retornar uma lista somente
// com transações dos últimos 7 dias.
// Dica: Olhar o construtor ".now()" e o método ".difference(DateTime other)" da class "DateTime"
// Link para docs:
// - ".difference()": https://api.dart.dev/stable/2.12.2/dart-core/DateTime/difference.html
// - ".now()": https://api.dart.dev/stable/2.12.2/dart-core/DateTime/DateTime.now.html
List<Transaction> getTransactionsFromDaysAgo(List<Transaction> transactionList, int daysAgo) {
return []; //Apenas para evitar erro de compilação.
}
}
enum MovementType {
income, //Entrada de valor
outcome, //Saida de valor
}
class Transaction {
MovementType movementType;
DateTime date;
int value;
Transaction({
required this.date,
required this.movementType,
required this.value,
});
}
final transactionList = [
Transaction(
date: DateTime(2021, 3, 21),
value: 100,
movementType: MovementType.income
),
Transaction(
date: DateTime(2021, 3, 15),
value: 177,
movementType: MovementType.income
),
Transaction(
date: DateTime(2021, 3, 12),
value: 30,
movementType: MovementType.outcome
),
Transaction(
date: DateTime(2021, 3, 5),
value: 400,
movementType: MovementType.outcome
),
Transaction(
date: DateTime(2021, 2, 27),
value: 574,
movementType: MovementType.income
),
Transaction(
date: DateTime(2021, 2, 20),
value: 32,
movementType: MovementType.income
),
Transaction(
date: DateTime(2021, 2, 12),
value: 3120,
movementType: MovementType.outcome
),
Transaction(
date: DateTime(2021, 2, 5),
value: 122,
movementType: MovementType.income
),
Transaction(
date: DateTime(2021, 1, 25),
value: 144,
movementType: MovementType.income
),
Transaction(
date: DateTime(2021, 1, 19),
value: 324,
movementType: MovementType.outcome
),
Transaction(
date: DateTime(2021, 1, 13),
value: 371,
movementType: MovementType.income
),
Transaction(
date: DateTime(2021, 1, 7),
value: 2735,
movementType: MovementType.income
),
Transaction(
date: DateTime(2021, 1, 2),
value: 2735,
movementType: MovementType.outcome
),
];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment