Example usage for org.joda.time Period Period

List of usage examples for org.joda.time Period Period

Introduction

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

Prototype

private Period(int[] values, PeriodType type) 

Source Link

Document

Constructor used when we trust ourselves.

Usage

From source file:org.projectbuendia.client.utils.RelativeDateTimeFormatter.java

License:Apache License

/** Formats a representation of {@code date} relative to {@code anchor}. */
public String format(LocalDate date, LocalDate anchor) {
    if (date.isAfter(anchor)) {
        return "in the future"; // TODO/i18n
    }/*w  ww  .j a v a 2  s.  c  o m*/
    Period period = new Period(date, anchor);
    int daysAgo = period.toStandardDays().getDays();
    return daysAgo > 1 ? daysAgo + " days ago" : // TODO/i18n
            daysAgo == 1 ? "yesterday" : "today"; // TODO/i18n
}

From source file:org.projectbuendia.client.utils.RelativeDateTimeFormatter.java

License:Apache License

/** Formats a representation of {@code dateTime} relative to {@code anchor}. */
public String format(DateTime dateTime, DateTime anchor) {
    if (dateTime.isAfter(anchor)) {
        return "in the future"; // TODO/i18n
    }//from w  ww.j a  v  a2  s  .  co  m
    Period period = new Period(dateTime, anchor);
    int daysAgo = period.toStandardDays().getDays();
    int hoursAgo = period.toStandardHours().getHours();
    int minutesAgo = period.toStandardMinutes().getMinutes();

    return daysAgo > 1 ? daysAgo + " days ago" : // TODO/i18n
            hoursAgo > 1 ? hoursAgo + " hours ago" : // TODO/i18n
                    minutesAgo > 1 ? minutesAgo + " min ago" : // TODO/i18n
                            "right now"; // TODO/i18n
}

From source file:org.projectbuendia.client.utils.Utils.java

License:Apache License

/** Converts a birthdate to a string describing age in months or years. */
public static String birthdateToAge(LocalDate birthdate, Resources resources) {
    Period age = new Period(birthdate, LocalDate.now());
    int years = age.getYears(), months = age.getMonths();
    return years >= 5 ? resources.getString(R.string.abbrev_n_years, years)
            : resources.getString(R.string.abbrev_n_months, months + years * 12);
}

From source file:org.projectforge.plugins.teamcal.event.TeamCalEventProvider.java

License:Open Source License

/**
 * @see org.projectforge.web.calendar.MyFullCalendarEventsProvider#buildEvents(org.joda.time.DateTime, org.joda.time.DateTime)
 */// www . ja v  a  2  s  . com
@Override
protected void buildEvents(final DateTime start, final DateTime end) {
    final TemplateEntry activeTemplateEntry = filter.getActiveTemplateEntry();
    if (activeTemplateEntry == null) {
        // Nothing to build.
        return;
    }
    final Set<Integer> visibleCalendars = activeTemplateEntry.getVisibleCalendarIds();
    if (CollectionUtils.isEmpty(visibleCalendars) == true) {
        // Nothing to build.
        return;
    }
    final TeamEventFilter eventFilter = new TeamEventFilter();
    eventFilter.setTeamCals(visibleCalendars);
    eventFilter.setStartDate(start.toDate());
    eventFilter.setEndDate(end.toDate());
    eventFilter.setUser(PFUserContext.getUser());
    final List<TeamEvent> teamEvents = teamEventDao.getEventList(eventFilter);

    boolean longFormat = false;
    days = Days.daysBetween(start, end).getDays();
    if (days < 10) {
        // Week or day view:
        longFormat = true;
    }

    final TeamCalRight right = new TeamCalRight();
    final PFUserDO user = PFUserContext.getUser();
    final TimeZone timeZone = PFUserContext.getTimeZone();
    if (CollectionUtils.isNotEmpty(teamEvents) == true) {
        for (final TeamEvent teamEvent : teamEvents) {
            final DateTime startDate = new DateTime(teamEvent.getStartDate(), PFUserContext.getDateTimeZone());
            final DateTime endDate = new DateTime(teamEvent.getEndDate(), PFUserContext.getDateTimeZone());
            final TeamEventDO eventDO;
            final TeamCalEventId id = new TeamCalEventId(teamEvent, timeZone);
            if (teamEvent instanceof TeamEventDO) {
                eventDO = (TeamEventDO) teamEvent;
            } else {
                eventDO = ((TeamRecurrenceEvent) teamEvent).getMaster();
            }
            teamEventMap.put(id.toString(), teamEvent);
            final MyEvent event = new MyEvent();
            event.setClassName(
                    EVENT_CLASS_NAME + " " + EventDroppedCallbackScriptGenerator.NO_CONTEXTMENU_INDICATOR);
            event.setId("" + id);
            event.setColor(activeTemplateEntry.getColorCode(eventDO.getCalendarId()));

            if (eventRight.hasUpdateAccess(PFUserContext.getUser(), eventDO, null)) {
                event.setEditable(true);
            } else {
                event.setEditable(false);
            }

            if (teamEvent.isAllDay() == true) {
                event.setAllDay(true);
            }

            event.setStart(startDate);
            event.setEnd(endDate);

            event.setTooltip(eventDO.getCalendar().getTitle(),
                    new String[][] { { eventDO.getSubject() },
                            { eventDO.getLocation(), getString("timesheet.location") },
                            { eventDO.getNote(), getString("plugins.teamcal.event.note") } });
            final String title;
            String durationString = "";
            if (longFormat == true) {
                // String day = duration.getDays() + "";
                final Period period = new Period(startDate, endDate);
                int hourInt = period.getHours();
                if (period.getDays() > 0) {
                    hourInt += period.getDays() * 24;
                }
                final String hour = hourInt < 10 ? "0" + hourInt : "" + hourInt;

                final int minuteInt = period.getMinutes();
                final String minute = minuteInt < 10 ? "0" + minuteInt : "" + minuteInt;

                if (event.isAllDay() == false) {
                    durationString = "\n" + getString("plugins.teamcal.event.duration") + ": " + hour + ":"
                            + minute;
                }
                final StringBuffer buf = new StringBuffer();
                buf.append(teamEvent.getSubject());
                if (StringUtils.isNotBlank(teamEvent.getNote()) == true) {
                    buf.append("\n").append(getString("plugins.teamcal.event.note")).append(": ")
                            .append(teamEvent.getNote());
                }
                buf.append(durationString);
                title = buf.toString();
            } else {
                title = teamEvent.getSubject();
            }
            if (right.hasMinimalAccess(eventDO.getCalendar(), user.getId()) == true) {
                // for minimal access
                event.setTitle("");
                event.setEditable(false);
            } else {
                event.setTitle(title);
            }
            events.put(id + "", event);
        }
    }
}

From source file:org.projectforge.web.calendar.MyEvent.java

License:Open Source License

public String getDuration() {
    if (duration != null) {
        return duration;
    }//from w w  w.j ava  2  s  .c  o  m
    final Period period = new Period(this.getStart(), this.getEnd());
    int days = period.getDays();
    if (isAllDay() == true) {
        ++days;
    }
    final int hours = period.getHours();
    final int minutes = period.getMinutes();
    final StringBuffer buf = new StringBuffer();
    if (days > 0) { // days
        buf.append(days).append(PFUserContext.getLocalizedString("calendar.unit.day")).append(" ");
    }
    if (isAllDay() == false) {
        buf.append(hours).append(":"); // hours
        if (minutes < 10) {
            buf.append("0");
        }
        buf.append(minutes);
    }
    duration = buf.toString();
    return duration;
}

From source file:org.projectforge.web.teamcal.event.MyWicketEvent.java

License:Open Source License

public String getDuration() {
    if (duration != null) {
        return duration;
    }/*  w ww.ja  v a 2 s  . c  o  m*/
    final Period period = new Period(this.getStart(), this.getEnd());
    int days = period.getDays();
    if (isAllDay() == true) {
        ++days;
    }
    final int hours = period.getHours();
    final int minutes = period.getMinutes();
    final StringBuffer buf = new StringBuffer();
    if (days > 0) { // days
        buf.append(days).append(ThreadLocalUserContext.getLocalizedString("calendar.unit.day")).append(" ");
    }
    if (isAllDay() == false) {
        buf.append(hours).append(":"); // hours
        if (minutes < 10) {
            buf.append("0");
        }
        buf.append(minutes);
    }
    duration = buf.toString();
    return duration;
}

From source file:org.projectforge.web.teamcal.event.TeamCalEventProvider.java

License:Open Source License

/**
 * @see org.projectforge.web.calendar.MyFullCalendarEventsProvider#buildEvents(org.joda.time.DateTime,
 *      org.joda.time.DateTime)/*from  ww w .  j  av  a  2  s. c o m*/
 */
@Override
protected void buildEvents(final DateTime start, final DateTime end) {
    final TemplateEntry activeTemplateEntry = filter.getActiveTemplateEntry();
    if (activeTemplateEntry == null) {
        // Nothing to build.
        return;
    }
    final Set<Integer> visibleCalendars = activeTemplateEntry.getVisibleCalendarIds();
    if (CollectionUtils.isEmpty(visibleCalendars) == true) {
        // Nothing to build.
        return;
    }
    final TeamEventFilter eventFilter = new TeamEventFilter();
    eventFilter.setTeamCals(visibleCalendars);
    eventFilter.setStartDate(start.toDate());
    eventFilter.setEndDate(end.toDate());
    eventFilter.setUser(ThreadLocalUserContext.getUser());
    final List<TeamEvent> teamEvents = teamEventDao.getEventList(eventFilter, true);

    boolean longFormat = false;
    days = Days.daysBetween(start, end).getDays();
    if (days < 10) {
        // Week or day view:
        longFormat = true;
    }

    final TeamCalRight right = new TeamCalRight(accessChecker);
    final PFUserDO user = ThreadLocalUserContext.getUser();
    final TimeZone timeZone = ThreadLocalUserContext.getTimeZone();
    if (CollectionUtils.isNotEmpty(teamEvents) == true) {
        for (final TeamEvent teamEvent : teamEvents) {
            final DateTime startDate = new DateTime(teamEvent.getStartDate(),
                    ThreadLocalUserContext.getDateTimeZone());
            final DateTime endDate = new DateTime(teamEvent.getEndDate(),
                    ThreadLocalUserContext.getDateTimeZone());
            final TeamEventDO eventDO;
            final TeamCalEventId id = new TeamCalEventId(teamEvent, timeZone);
            if (teamEvent instanceof TeamEventDO) {
                eventDO = (TeamEventDO) teamEvent;
            } else {
                eventDO = ((TeamRecurrenceEvent) teamEvent).getMaster();
            }
            teamEventMap.put(id.toString(), teamEvent);
            final MyWicketEvent event = new MyWicketEvent();
            event.setClassName(
                    EVENT_CLASS_NAME + " " + EventDroppedCallbackScriptGenerator.NO_CONTEXTMENU_INDICATOR);
            event.setId("" + id);
            event.setColor(activeTemplateEntry.getColorCode(eventDO.getCalendarId()));

            if (eventRight.hasUpdateAccess(ThreadLocalUserContext.getUser(), eventDO, null)) {
                event.setEditable(true);
            } else {
                event.setEditable(false);
            }

            // id <= 0 is hint for abo events -> not editable
            if (eventDO.getId() != null && eventDO.getId() <= 0) {
                event.setEditable(false);
            }

            if (teamEvent.isAllDay() == true) {
                event.setAllDay(true);
            }

            event.setStart(startDate);
            event.setEnd(endDate);

            String recurrence = null;
            if (eventDO.hasRecurrence() == true) {
                final Recur recur = eventDO.getRecurrenceObject();
                final TeamEventRecurrenceData recurrenceData = new TeamEventRecurrenceData(recur,
                        ThreadLocalUserContext.getTimeZone());
                final RecurrenceFrequency frequency = recurrenceData.getFrequency();
                if (frequency != null) {
                    final String unitI18nKey = frequency.getUnitI18nKey();
                    if (unitI18nKey != null) {
                        recurrence = recurrenceData.getInterval() + " " + getString(unitI18nKey);
                    }
                }
            }
            String reminder = null;
            if (eventDO.getReminderActionType() != null
                    && NumberHelper.greaterZero(eventDO.getReminderDuration()) == true
                    && eventDO.getReminderDurationUnit() != null) {
                reminder = getString(eventDO.getReminderActionType().getI18nKey()) + " "
                        + eventDO.getReminderDuration() + " "
                        + getString(eventDO.getReminderDurationUnit().getI18nKey());
            }
            event.setTooltip(eventDO.getCalendar().getTitle(),
                    new String[][] { { eventDO.getSubject() },
                            { eventDO.getLocation(), getString("timesheet.location") },
                            { eventDO.getNote(), getString("plugins.teamcal.event.note") },
                            { recurrence, getString("plugins.teamcal.event.recurrence") },
                            { reminder, getString("plugins.teamcal.event.reminder") } });
            final String title;
            String durationString = "";
            if (longFormat == true) {
                // String day = duration.getDays() + "";
                final Period period = new Period(startDate, endDate);
                int hourInt = period.getHours();
                if (period.getDays() > 0) {
                    hourInt += period.getDays() * 24;
                }
                final String hour = hourInt < 10 ? "0" + hourInt : "" + hourInt;

                final int minuteInt = period.getMinutes();
                final String minute = minuteInt < 10 ? "0" + minuteInt : "" + minuteInt;

                if (event.isAllDay() == false) {
                    durationString = "\n"
                            + ThreadLocalUserContext.getLocalizedString("plugins.teamcal.event.duration") + ": "
                            + hour + ":" + minute;
                }
                final StringBuffer buf = new StringBuffer();
                buf.append(teamEvent.getSubject());
                if (StringUtils.isNotBlank(teamEvent.getNote()) == true) {
                    buf.append("\n")
                            .append(ThreadLocalUserContext.getLocalizedString("plugins.teamcal.event.note"))
                            .append(": ").append(teamEvent.getNote());
                }
                buf.append(durationString);
                title = buf.toString();
            } else {
                title = teamEvent.getSubject();
            }
            if (right.hasMinimalAccess(eventDO.getCalendar(), user.getId()) == true) {
                // for minimal access
                event.setTitle("");
                event.setEditable(false);
            } else {
                event.setTitle(title);
            }
            events.put(id + "", event);
        }
    }
}

From source file:org.samcrow.ridgesurvey.data.ObservationItemView.java

License:Open Source License

public void setObservation(@Nullable IdentifiedObservation observation) {
    mObservation = observation;// w w  w  .  ja v a  2 s  .  c  o m
    if (mObservation != null) {
        mPrimaryText.setText(String.format(Locale.getDefault(), "Site %d", mObservation.getSiteId()));

        final Period timeSinceUpload = new Period(mObservation.getTime(), DateTime.now());

        mSecondaryText.setText(formatAgo(timeSinceUpload));

        if (mObservation.isUploaded()) {
            mIcon.setVisibility(VISIBLE);
        } else {
            mIcon.setVisibility(GONE);
        }
    }
}

From source file:org.schors.evlampia.commands.BotInfoCmd.java

License:Open Source License

@Override
public void execute(CommandContext context) throws Exception {
    MultiUserChat muc = (MultiUserChat) context.getFacilities().get(Jbot.F_MUC);

    StringBuilder info = new StringBuilder();
    info.append(Jbot.newline).append("OS: ").append(ManagementFactory.getOperatingSystemMXBean().getName())
            .append(" ").append(ManagementFactory.getOperatingSystemMXBean().getVersion()).append(" ")
            .append(ManagementFactory.getOperatingSystemMXBean().getArch()).append(Jbot.newline)
            .append("Memory: ").append(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed())
            .append("/").append(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax())
            .append(Jbot.newline).append("CPU: ")
            .append(ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage()).append(Jbot.newline)
            .append("Uptime: ").append(new Period(ConfigurationManager.startTime, new Instant()).toString(pf));

    muc.sendMessage(info.toString());/*from w  ww  .j a  v a 2  s. co m*/
}

From source file:org.starnub.utilities.time.DateAndTimes.java

License:Open Source License

/**
 * Returns a period which represents the distance between two times
 *
 * @param dateTime1 DateTime representing the first date and time
 * @param dateTime2 DateTime representing the second date and time
 * @return Period representing that distance in time
 *//*from   w w  w  . ja  v  a 2  s.co m*/
public Period getPeriod(DateTime dateTime1, DateTime dateTime2) {
    return new Period(dateTime1, dateTime2);
}