Created
March 21, 2021 22:54
-
-
Save manoellribeiro/4e060d40d191b29fffb4b4f124678b27 to your computer and use it in GitHub Desktop.
Daniel - Exercícios sobre listas - Transações
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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