Example usage for org.joda.time LocalDateTime dayOfYear

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

Introduction

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

Prototype

public Property dayOfYear() 

Source Link

Document

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

Usage

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
 */// w w  w  . j ava 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   ww w.  j  a  v a  2  s.  c  om*/
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 .  com*/
        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  w w.ja  v  a2 s  .  com
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.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  w  w w . j  ava2 s  .com*/
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
 *//*w w  w . ja  v  a2  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 ww w .j a v  a 2  s .c o  m
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;
}

From source file:org.gnucash.android.ui.report.LineChartFragment.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
 *//*  ww w.j av  a2  s  .  com*/
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;
    LocalDateTime latest;
    if (mReportStartTime == -1 && mReportEndTime == -1) {
        earliest = new LocalDateTime(mEarliestTimestampsMap.get(accountType));
        latest = new LocalDateTime(mLatestTimestampsMap.get(accountType));
    } else {
        earliest = new LocalDateTime(mReportStartTime);
        latest = new LocalDateTime(mReportEndTime);
    }
    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;
}