Example usage for org.joda.time LocalDateTime dayOfMonth

List of usage examples for org.joda.time LocalDateTime dayOfMonth

Introduction

In this page you can find the example usage for org.joda.time LocalDateTime dayOfMonth.

Prototype

public Property dayOfMonth() 

Source Link

Document

Get the day of month property which provides access to advanced functionality.

Usage

From source file:ee.ut.soras.ajavtV2.mudel.ajavaljend.arvutus.SemLeidmiseAbimeetodid.java

License:Open Source License

/**
 *    Leiab <tt>currentDateTime</tt> granulaarsuse <tt>superField</tt> 
 *   <i>n</i>-inda alamosa, mis vastab tingimustele <tt>subField == soughtValueOfSubField</tt>.
 *   <p>//from   w ww.ja  va2  s  . c om
 *   Negatiivsete <i>n</i> vaartuste korral voetakse alamosa "tagantpoolt": vaartus 
 *   <i>n</i> == -1 tahistab <i>viimast</i>, <i>n</i> == -2 tahistab <i>eelviimast</i>
 *   jne alamosa.
 *   <p>
 *   Praegu on defineeritud ainult <i>kuu n-inda nadalapaeva leidmise</i> operatsioon (
 *   <tt>superField == MONTH</tt>, <tt>subField == DAY_OF_WEEK</tt>, <tt>soughtValueOfSubField == a weekdayname</tt> ).
 */
public static LocalDateTime findNthSubpartOfGranularity(Granulaarsus superField, Granulaarsus subField,
        int soughtValueOfSubField, int n, LocalDateTime currentDateTime) {
    if (superField == Granulaarsus.MONTH) {
        // --------------------------------------      
        //  Kuu n-inda nadalapaeva leidmine ...
        // --------------------------------------
        if (subField == Granulaarsus.DAY_OF_WEEK && DateTimeConstants.MONDAY <= soughtValueOfSubField
                && soughtValueOfSubField <= DateTimeConstants.SUNDAY) {
            if (n > 0) {
                //
                // Algoritm:  
                //    http://msdn.microsoft.com/en-us/library/aa227532(VS.60).aspx
                //
                // Kerime kaesoleva kuu esimese kuupaeva peale ...
                LocalDateTime newDate = currentDateTime.withDayOfMonth(1);
                // Leiame esimese otsitud nadalapaeva
                while (newDate.getDayOfWeek() != soughtValueOfSubField) {
                    newDate = newDate.plusDays(1);
                }
                int currentMonth = newDate.getMonthOfYear();
                newDate = newDate.plusDays((n - 1) * 7);
                if (currentMonth == newDate.getMonthOfYear()) {
                    // Kui kuu j2i kindlalt samaks, tagastame leitud nadalapaeva
                    return newDate;
                }
            } else if (n < 0) {
                // Negatiivsete vaartuste korral otsime lahendust lopust:
                // Kerime kuu viimase vaartuse peale
                LocalDateTime newDate = currentDateTime
                        .withDayOfMonth(currentDateTime.dayOfMonth().getMaximumValue());
                // Leiame viimase otsitud nadalapaeva
                while (newDate.getDayOfWeek() != soughtValueOfSubField) {
                    newDate = newDate.minusDays(1);
                }
                int currentMonth = newDate.getMonthOfYear();
                newDate = newDate.minusDays(((n * (-1)) - 1) * 7);
                if (currentMonth == newDate.getMonthOfYear()) {
                    // Kui kuu j2i kindlalt samaks, tagastame leitud nadalapaeva
                    return newDate;
                }
            }
        }
        // -------------------------------------------------
        //   Kuu n-inda ndala/ndalavahetuse leidmine ...
        // -------------------------------------------------
        // -------------------------------------------------------------------
        //   Teeme eelduse, et kuu esimene ndal on ndal, mis sisaldab kuu
        //  esimest nadalapaeva {soughtValueOfSubField};
        //   Ning analoogselt, kuu viimane ndal on ndal, mis sisaldab kuu 
        //  viimast nadalapaeva {soughtValueOfSubField};
        // -------------------------------------------------------------------
        if (subField == Granulaarsus.WEEK_OF_YEAR && DateTimeConstants.MONDAY <= soughtValueOfSubField
                && soughtValueOfSubField <= DateTimeConstants.SUNDAY) {
            if (n > 0) {
                // Kerime kaesoleva kuu esimese paeva peale ...
                LocalDateTime newDate = currentDateTime.withDayOfMonth(1);
                // Leiame kuu esimese neljapaeva/laupaeva
                while (newDate.getDayOfWeek() != soughtValueOfSubField) {
                    newDate = newDate.plusDays(1);
                }
                newDate = newDate.plusDays((n - 1) * 7);
                return newDate;
            } else if (n < 0) {
                // Negatiivsete vaartuste korral otsime lahendust lopust:
                // Kerime kuu viimase vaartuse peale
                LocalDateTime newDate = currentDateTime
                        .withDayOfMonth(currentDateTime.dayOfMonth().getMaximumValue());
                // Leiame viimase neljapaeva/laupaeva
                while (newDate.getDayOfWeek() != soughtValueOfSubField) {
                    newDate = newDate.minusDays(1);
                }
                newDate = newDate.minusDays(((n * (-1)) - 1) * 7);
                return newDate;
            }
        }
    }
    return null;
}

From source file:org.gnucash.android.model.Budget.java

License:Apache License

/**
 * Returns the timestamp of the start of current period of the budget
 * @return Start timestamp in milliseconds
 *//*from   w  w  w  . j  a va  2 s  .  co  m*/
public long getStartofCurrentPeriod() {
    LocalDateTime localDate = new LocalDateTime();
    int interval = mRecurrence.getPeriodType().getMultiplier();
    switch (mRecurrence.getPeriodType()) {
    case DAY:
        localDate = localDate.millisOfDay().withMinimumValue().plusDays(interval);
        break;
    case WEEK:
        localDate = localDate.dayOfWeek().withMinimumValue().minusDays(interval);
        break;
    case MONTH:
        localDate = localDate.dayOfMonth().withMinimumValue().minusMonths(interval);
        break;
    case YEAR:
        localDate = localDate.dayOfYear().withMinimumValue().minusYears(interval);
        break;
    }
    return localDate.toDate().getTime();
}

From source file:org.gnucash.android.model.Budget.java

License:Apache License

/**
 * Returns the end timestamp of the current period
 * @return End timestamp in milliseconds
 *///from   w w w . j  a v  a  2 s  .c o  m
public long getEndOfCurrentPeriod() {
    LocalDateTime localDate = new LocalDateTime();
    int interval = mRecurrence.getPeriodType().getMultiplier();
    switch (mRecurrence.getPeriodType()) {
    case DAY:
        localDate = localDate.millisOfDay().withMaximumValue().plusDays(interval);
        break;
    case WEEK:
        localDate = localDate.dayOfWeek().withMaximumValue().plusWeeks(interval);
        break;
    case MONTH:
        localDate = localDate.dayOfMonth().withMaximumValue().plusMonths(interval);
        break;
    case YEAR:
        localDate = localDate.dayOfYear().withMaximumValue().plusYears(interval);
        break;
    }
    return localDate.toDate().getTime();
}

From source file:org.gnucash.android.model.Budget.java

License:Apache License

public long getStartOfPeriod(int periodNum) {
    LocalDateTime localDate = new LocalDateTime(mRecurrence.getPeriodStart().getTime());
    int interval = mRecurrence.getPeriodType().getMultiplier() * periodNum;
    switch (mRecurrence.getPeriodType()) {
    case DAY:/*from  www.  ja v  a 2 s.c  o  m*/
        localDate = localDate.millisOfDay().withMinimumValue().plusDays(interval);
        break;
    case WEEK:
        localDate = localDate.dayOfWeek().withMinimumValue().minusDays(interval);
        break;
    case MONTH:
        localDate = localDate.dayOfMonth().withMinimumValue().minusMonths(interval);
        break;
    case YEAR:
        localDate = localDate.dayOfYear().withMinimumValue().minusYears(interval);
        break;
    }
    return localDate.toDate().getTime();
}

From source file:org.gnucash.android.model.Budget.java

License:Apache License

/**
 * Returns the end timestamp of the period
 * @param periodNum Number of the period
 * @return End timestamp in milliseconds of the period
 *//*from   w ww .  j  a v  a  2s . co  m*/
public long getEndOfPeriod(int periodNum) {
    LocalDateTime localDate = new LocalDateTime();
    int interval = mRecurrence.getPeriodType().getMultiplier() * periodNum;
    switch (mRecurrence.getPeriodType()) {
    case DAY:
        localDate = localDate.millisOfDay().withMaximumValue().plusDays(interval);
        break;
    case WEEK:
        localDate = localDate.dayOfWeek().withMaximumValue().plusWeeks(interval);
        break;
    case MONTH:
        localDate = localDate.dayOfMonth().withMaximumValue().plusMonths(interval);
        break;
    case YEAR:
        localDate = localDate.dayOfYear().withMaximumValue().plusYears(interval);
        break;
    }
    return localDate.toDate().getTime();
}

From source file:org.gnucash.android.ui.chart.BarChartActivity.java

License:Apache License

/**
 * Returns a data object that represents a user data of the specified account types
 * @param accountType account's type which will be displayed
 * @return a {@code BarData} instance that represents a user data
 *///from w  w  w . ja va2  s.  c  o m
private BarData getData(AccountType accountType) {
    List<BarEntry> values = new ArrayList<>();
    List<String> labels = new ArrayList<>();
    List<Integer> colors = new ArrayList<>();
    Map<String, Integer> accountToColorMap = new LinkedHashMap<>();
    List<String> xValues = new ArrayList<>();
    LocalDateTime tmpDate = new LocalDateTime(getStartDate(accountType).toDate().getTime());
    for (int i = 0; i <= Months.monthsBetween(getStartDate(accountType), getEndDate(accountType))
            .getMonths(); i++) {
        long start = tmpDate.dayOfMonth().withMinimumValue().millisOfDay().withMinimumValue().toDate()
                .getTime();
        long end = tmpDate.dayOfMonth().withMaximumValue().millisOfDay().withMaximumValue().toDate().getTime();
        List<Float> stack = new ArrayList<>();
        for (Account account : mAccountsDbAdapter.getSimpleAccountList()) {
            if (account.getAccountType() == accountType && !account.isPlaceholderAccount()
                    && account.getCurrency() == mCurrency) {

                double balance = mAccountsDbAdapter
                        .getAccountsBalance(Collections.singletonList(account.getUID()), start, end).asDouble();
                if (balance != 0) {
                    if (!accountToColorMap.containsKey(account.getUID())) {
                        Integer color;
                        if (mUseAccountColor) {
                            color = (account.getColorHexCode() != null)
                                    ? Color.parseColor(account.getColorHexCode())
                                    : COLORS[accountToColorMap.size() % COLORS.length];
                        } else {
                            color = COLORS[accountToColorMap.size() % COLORS.length];
                        }
                        accountToColorMap.put(account.getUID(), color);
                    }

                    stack.add((float) balance);
                    labels.add(account.getName());
                    colors.add(accountToColorMap.get(account.getUID()));
                    Log.d(TAG, accountType + tmpDate.toString(" MMMM yyyy ") + account.getName() + " = "
                            + stack.get(stack.size() - 1));
                }
            }
        }

        String stackLabels = labels.subList(labels.size() - stack.size(), labels.size()).toString();
        values.add(new BarEntry(floatListToArray(stack), i, stackLabels));

        xValues.add(tmpDate.toString(X_AXIS_PATTERN));

        tmpDate = tmpDate.plusMonths(1);
    }

    BarDataSet set = new BarDataSet(values, "");
    set.setStackLabels(labels.toArray(new String[labels.size()]));
    set.setColors(colors);

    if (set.getYValueSum() == 0) {
        mChartDataPresent = false;
        return getEmptyData();
    }
    mChartDataPresent = true;
    return new BarData(xValues, set);
}

From source file:org.gnucash.android.ui.chart.LineChartActivity.java

License:Apache License

/**
 * Returns entries which represent a user data of the specified account type
 * @param accountType account's type which user data will be processed
 * @return entries which represent a user data
 *//*from   w ww.  ja  va2  s. co m*/
private List<Entry> getEntryList(AccountType accountType) {
    List<String> accountUIDList = new ArrayList<>();
    for (Account account : mAccountsDbAdapter.getSimpleAccountList()) {
        if (account.getAccountType() == accountType && !account.isPlaceholderAccount()
                && account.getCurrency() == mCurrency) {
            accountUIDList.add(account.getUID());
        }
    }

    LocalDateTime earliest = new LocalDateTime(mEarliestTimestampsMap.get(accountType));
    LocalDateTime latest = new LocalDateTime(mLatestTimestampsMap.get(accountType));
    Log.d(TAG, "Earliest " + accountType + " date " + earliest.toString("dd MM yyyy"));
    Log.d(TAG, "Latest " + accountType + " date " + latest.toString("dd MM yyyy"));
    int months = Months.monthsBetween(earliest.withDayOfMonth(1).withMillisOfDay(0),
            latest.withDayOfMonth(1).withMillisOfDay(0)).getMonths();

    int offset = getXAxisOffset(accountType);
    List<Entry> values = new ArrayList<>(months + 1);
    for (int i = 0; i < months + 1; i++) {
        long start = earliest.dayOfMonth().withMinimumValue().millisOfDay().withMinimumValue().toDate()
                .getTime();
        long end = earliest.dayOfMonth().withMaximumValue().millisOfDay().withMaximumValue().toDate().getTime();
        float balance = (float) mAccountsDbAdapter.getAccountsBalance(accountUIDList, start, end).asDouble();
        values.add(new Entry(balance, i + offset));
        Log.d(TAG, accountType + earliest.toString(" MMM yyyy") + ", balance = " + balance);
        earliest = earliest.plusMonths(1);
    }

    return values;
}

From source file:org.gnucash.android.ui.report.barchart.StackedBarChartFragment.java

License:Apache License

/**
 * Returns a data object that represents a user data of the specified account types
 * @return a {@code BarData} instance that represents a user data
 *//*from  www. ja  v  a 2s.c o  m*/
protected BarData getData() {
    List<BarEntry> values = new ArrayList<>();
    List<String> labels = new ArrayList<>();
    List<Integer> colors = new ArrayList<>();
    Map<String, Integer> accountToColorMap = new LinkedHashMap<>();
    List<String> xValues = new ArrayList<>();
    LocalDateTime tmpDate = new LocalDateTime(getStartDate(mAccountType).toDate().getTime());
    int count = getDateDiff(new LocalDateTime(getStartDate(mAccountType).toDate().getTime()),
            new LocalDateTime(getEndDate(mAccountType).toDate().getTime()));
    for (int i = 0; i <= count; i++) {
        long start = 0;
        long end = 0;
        switch (mGroupInterval) {
        case MONTH:
            start = tmpDate.dayOfMonth().withMinimumValue().millisOfDay().withMinimumValue().toDate().getTime();
            end = tmpDate.dayOfMonth().withMaximumValue().millisOfDay().withMaximumValue().toDate().getTime();

            xValues.add(tmpDate.toString(X_AXIS_MONTH_PATTERN));
            tmpDate = tmpDate.plusMonths(1);
            break;
        case QUARTER:
            int quarter = getQuarter(tmpDate);
            start = tmpDate.withMonthOfYear(quarter * 3 - 2).dayOfMonth().withMinimumValue().millisOfDay()
                    .withMinimumValue().toDate().getTime();
            end = tmpDate.withMonthOfYear(quarter * 3).dayOfMonth().withMaximumValue().millisOfDay()
                    .withMaximumValue().toDate().getTime();

            xValues.add(String.format(X_AXIS_QUARTER_PATTERN, quarter, tmpDate.toString(" YY")));
            tmpDate = tmpDate.plusMonths(3);
            break;
        case YEAR:
            start = tmpDate.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue().toDate().getTime();
            end = tmpDate.dayOfYear().withMaximumValue().millisOfDay().withMaximumValue().toDate().getTime();

            xValues.add(tmpDate.toString(X_AXIS_YEAR_PATTERN));
            tmpDate = tmpDate.plusYears(1);
            break;
        }
        List<Float> stack = new ArrayList<>();
        for (Account account : mAccountsDbAdapter.getSimpleAccountList()) {
            if (account.getAccountType() == mAccountType && !account.isPlaceholderAccount()
                    && account.getCommodity().equals(mCommodity)) {

                double balance = mAccountsDbAdapter
                        .getAccountsBalance(Collections.singletonList(account.getUID()), start, end).asDouble();
                if (balance != 0) {
                    stack.add((float) balance);

                    String accountName = account.getName();
                    while (labels.contains(accountName)) {
                        if (!accountToColorMap.containsKey(account.getUID())) {
                            for (String label : labels) {
                                if (label.equals(accountName)) {
                                    accountName += " ";
                                }
                            }
                        } else {
                            break;
                        }
                    }
                    labels.add(accountName);

                    if (!accountToColorMap.containsKey(account.getUID())) {
                        Integer color;
                        if (mUseAccountColor) {
                            color = (account.getColor() != Account.DEFAULT_COLOR) ? account.getColor()
                                    : COLORS[accountToColorMap.size() % COLORS.length];
                        } else {
                            color = COLORS[accountToColorMap.size() % COLORS.length];
                        }
                        accountToColorMap.put(account.getUID(), color);
                    }
                    colors.add(accountToColorMap.get(account.getUID()));

                    Log.d(TAG, mAccountType + tmpDate.toString(" MMMM yyyy ") + account.getName() + " = "
                            + stack.get(stack.size() - 1));
                }
            }
        }

        String stackLabels = labels.subList(labels.size() - stack.size(), labels.size()).toString();
        values.add(new BarEntry(floatListToArray(stack), i, stackLabels));
    }

    BarDataSet set = new BarDataSet(values, "");
    set.setDrawValues(false);
    set.setStackLabels(labels.toArray(new String[labels.size()]));
    set.setColors(colors);

    if (set.getYValueSum() == 0) {
        mChartDataPresent = false;
        return getEmptyData();
    }
    mChartDataPresent = true;
    return new BarData(xValues, set);
}

From source file:org.gnucash.android.ui.report.BarChartFragment.java

License:Apache License

/**
 * Returns a data object that represents a user data of the specified account types
 * @return a {@code BarData} instance that represents a user data
 *//*from   w w  w .j  a v a 2 s . co m*/
private BarData getData() {
    List<BarEntry> values = new ArrayList<>();
    List<String> labels = new ArrayList<>();
    List<Integer> colors = new ArrayList<>();
    Map<String, Integer> accountToColorMap = new LinkedHashMap<>();
    List<String> xValues = new ArrayList<>();
    LocalDateTime tmpDate = new LocalDateTime(getStartDate(mAccountType).toDate().getTime());
    int count = getDateDiff(new LocalDateTime(getStartDate(mAccountType).toDate().getTime()),
            new LocalDateTime(getEndDate(mAccountType).toDate().getTime()));
    for (int i = 0; i <= count; i++) {
        long start = 0;
        long end = 0;
        switch (mGroupInterval) {
        case MONTH:
            start = tmpDate.dayOfMonth().withMinimumValue().millisOfDay().withMinimumValue().toDate().getTime();
            end = tmpDate.dayOfMonth().withMaximumValue().millisOfDay().withMaximumValue().toDate().getTime();

            xValues.add(tmpDate.toString(X_AXIS_MONTH_PATTERN));
            tmpDate = tmpDate.plusMonths(1);
            break;
        case QUARTER:
            int quarter = getQuarter(tmpDate);
            start = tmpDate.withMonthOfYear(quarter * 3 - 2).dayOfMonth().withMinimumValue().millisOfDay()
                    .withMinimumValue().toDate().getTime();
            end = tmpDate.withMonthOfYear(quarter * 3).dayOfMonth().withMaximumValue().millisOfDay()
                    .withMaximumValue().toDate().getTime();

            xValues.add(String.format(X_AXIS_QUARTER_PATTERN, quarter, tmpDate.toString(" YY")));
            tmpDate = tmpDate.plusMonths(3);
            break;
        case YEAR:
            start = tmpDate.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue().toDate().getTime();
            end = tmpDate.dayOfYear().withMaximumValue().millisOfDay().withMaximumValue().toDate().getTime();

            xValues.add(tmpDate.toString(X_AXIS_YEAR_PATTERN));
            tmpDate = tmpDate.plusYears(1);
            break;
        }
        List<Float> stack = new ArrayList<>();
        for (Account account : mAccountsDbAdapter.getSimpleAccountList()) {
            if (account.getAccountType() == mAccountType && !account.isPlaceholderAccount()
                    && account.getCurrency() == mCurrency) {

                double balance = mAccountsDbAdapter
                        .getAccountsBalance(Collections.singletonList(account.getUID()), start, end).asDouble();
                if (balance != 0) {
                    if (!accountToColorMap.containsKey(account.getUID())) {
                        Integer color;
                        if (mUseAccountColor) {
                            color = (account.getColorHexCode() != null)
                                    ? Color.parseColor(account.getColorHexCode())
                                    : COLORS[accountToColorMap.size() % COLORS.length];
                        } else {
                            color = COLORS[accountToColorMap.size() % COLORS.length];
                        }
                        accountToColorMap.put(account.getUID(), color);
                    }

                    stack.add((float) balance);
                    labels.add(account.getName());
                    colors.add(accountToColorMap.get(account.getUID()));
                    Log.d(TAG, mAccountType + tmpDate.toString(" MMMM yyyy ") + account.getName() + " = "
                            + stack.get(stack.size() - 1));
                }
            }
        }

        String stackLabels = labels.subList(labels.size() - stack.size(), labels.size()).toString();
        values.add(new BarEntry(floatListToArray(stack), i, stackLabels));
    }

    BarDataSet set = new BarDataSet(values, "");
    set.setDrawValues(false);
    set.setStackLabels(labels.toArray(new String[labels.size()]));
    set.setColors(colors);

    if (set.getYValueSum() == 0) {
        mChartDataPresent = false;
        return getEmptyData();
    }
    mChartDataPresent = true;
    return new BarData(xValues, set);
}

From source file:org.gnucash.android.ui.report.linechart.CashFlowLineChartFragment.java

License:Apache License

/**
 * Returns entries which represent a user data of the specified account type
 * @param accountType account's type which user data will be processed
 * @return entries which represent a user data
 *///from www.  java  2s  .  c  om
private List<Entry> getEntryList(AccountType accountType) {
    List<String> accountUIDList = new ArrayList<>();
    for (Account account : mAccountsDbAdapter.getSimpleAccountList()) {
        if (account.getAccountType() == accountType && !account.isPlaceholderAccount()
                && account.getCommodity().equals(mCommodity)) {
            accountUIDList.add(account.getUID());
        }
    }

    LocalDateTime earliest;
    LocalDateTime latest;
    if (mReportPeriodStart == -1 && mReportPeriodEnd == -1) {
        earliest = new LocalDateTime(mEarliestTimestampsMap.get(accountType));
        latest = new LocalDateTime(mLatestTimestampsMap.get(accountType));
    } else {
        earliest = new LocalDateTime(mReportPeriodStart);
        latest = new LocalDateTime(mReportPeriodEnd);
    }
    Log.d(TAG, "Earliest " + accountType + " date " + earliest.toString("dd MM yyyy"));
    Log.d(TAG, "Latest " + accountType + " date " + latest.toString("dd MM yyyy"));

    int xAxisOffset = getDateDiff(new LocalDateTime(mEarliestTransactionTimestamp), earliest);
    int count = getDateDiff(earliest, latest);
    List<Entry> values = new ArrayList<>(count + 1);
    for (int i = 0; i <= count; i++) {
        long start = 0;
        long end = 0;
        switch (mGroupInterval) {
        case QUARTER:
            int quarter = getQuarter(earliest);
            start = earliest.withMonthOfYear(quarter * 3 - 2).dayOfMonth().withMinimumValue().millisOfDay()
                    .withMinimumValue().toDate().getTime();
            end = earliest.withMonthOfYear(quarter * 3).dayOfMonth().withMaximumValue().millisOfDay()
                    .withMaximumValue().toDate().getTime();

            earliest = earliest.plusMonths(3);
            break;
        case MONTH:
            start = earliest.dayOfMonth().withMinimumValue().millisOfDay().withMinimumValue().toDate()
                    .getTime();
            end = earliest.dayOfMonth().withMaximumValue().millisOfDay().withMaximumValue().toDate().getTime();

            earliest = earliest.plusMonths(1);
            break;
        case YEAR:
            start = earliest.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue().toDate().getTime();
            end = earliest.dayOfYear().withMaximumValue().millisOfDay().withMaximumValue().toDate().getTime();

            earliest = earliest.plusYears(1);
            break;
        }
        float balance = (float) mAccountsDbAdapter.getAccountsBalance(accountUIDList, start, end).asDouble();
        values.add(new Entry(balance, i + xAxisOffset));
        Log.d(TAG, accountType + earliest.toString(" MMM yyyy") + ", balance = " + balance);

    }

    return values;
}