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.

Revisions

  1. manoellribeiro created this gist Mar 21, 2021.
    113 changes: 113 additions & 0 deletions main.dart
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,113 @@
    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
    ),
    ];