Example usage for org.joda.time Minutes Minutes

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

Introduction

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

Prototype

private Minutes(int minutes) 

Source Link

Document

Creates a new instance representing a number of minutes.

Usage

From source file:com.google.android.apps.paco.EsmGenerator2.java

License:Open Source License

public List<DateTime> generateForSchedule(DateTime startDate, SignalSchedule schedule) {
    this.schedule = schedule;
    this.periodStartDate = adjustStartDateToBeginningOfPeriod(startDate);
    times = new ArrayList<DateTime>();

    if (schedule.getEsmFrequency() == null || schedule.getEsmFrequency() == 0) {
        return times;
    }/*from w  w  w .j ava2  s. c  o  m*/
    List<Integer> schedulableDays;
    switch (schedule.getEsmPeriodInDays()) {
    case SignalSchedule.ESM_PERIOD_DAY:
        if (!schedule.getEsmWeekends() && TimeUtil.isWeekend(periodStartDate)) {
            return times;
        } else {
            schedulableDays = Arrays.asList(1);
        }
        break;
    case SignalSchedule.ESM_PERIOD_WEEK:
        schedulableDays = getPeriodDaysForWeek();
        break;
    case SignalSchedule.ESM_PERIOD_MONTH:
        schedulableDays = getPeriodDaysForMonthOf(periodStartDate);
        break;
    default:
        throw new IllegalStateException("Cannot get here.");
    }

    Minutes dayLengthIntervalInMinutes = Minutes
            .minutesIn(new Interval(schedule.getEsmStartHour(), schedule.getEsmEndHour()));
    Minutes totalMinutesInPeriod = dayLengthIntervalInMinutes.multipliedBy(schedulableDays.size());
    Minutes sampleBlockTimeInMinutes = totalMinutesInPeriod.dividedBy(schedule.getEsmFrequency());
    Minutes timeoutInMinutes = Minutes.minutes(schedule.getMinimumBuffer());
    Random rand = new Random();
    for (int signal = 0; signal < schedule.getEsmFrequency(); signal++) {

        int candidateTimeInBlock;
        DateTime candidateTime;
        int periodAttempts = 1000;
        do {
            candidateTimeInBlock = rand.nextInt(sampleBlockTimeInMinutes.getMinutes());
            // map candidatePeriod and candidateTime back onto days of period
            // note, sometimes a candidate period will map across days in period
            // because start and end hours make for non-contiguous days
            int totalMinutesToAdd = sampleBlockTimeInMinutes.getMinutes() * signal + candidateTimeInBlock;
            int daysToAdd = totalMinutesToAdd / dayLengthIntervalInMinutes.getMinutes();
            int minutesToAdd = 0;
            if (totalMinutesToAdd <= dayLengthIntervalInMinutes.getMinutes()) { // within one day
                minutesToAdd = totalMinutesToAdd;
            } else {
                minutesToAdd = totalMinutesToAdd % dayLengthIntervalInMinutes.getMinutes();
            }

            DateTime plusDays = periodStartDate.plusDays(schedulableDays.get(daysToAdd) - 1);
            candidateTime = plusDays.withMillisOfDay(schedule.getEsmStartHour().intValue())
                    .plusMinutes(minutesToAdd);
            periodAttempts--;
        } while (periodAttempts > 0
                && (!isMinimalBufferedDistanceFromOtherTimes(candidateTime, timeoutInMinutes)
                        || (!schedule.getEsmWeekends() && TimeUtil.isWeekend(candidateTime))));
        if (isMinimalBufferedDistanceFromOtherTimes(candidateTime, timeoutInMinutes)
                && (schedule.getEsmWeekends() || !TimeUtil.isWeekend(candidateTime))) {
            times.add(candidateTime);
        }

    }
    return times;
}

From source file:com.google.android.apps.paco.NotificationHolder.java

License:Open Source License

public boolean isActive(DateTime now) {
    return now.isBefore(new DateTime(alarmTime).plus(Minutes.minutes(timeoutMillis.intValue() / 60000)));
}

From source file:com.google.jenkins.plugins.cloudbackup.CloudBackupJenkinsModule.java

License:Open Source License

/**
 * Sets the incremental backup interval, in minutes.
 *
 * <p>An incremental backup will be performed if the time since the last
 * incremental backup exceeds that of the full backup interval. If a backup
 * is in progress, a new backup will not take place.
 *///from w w  w .  ja va 2 s .  co  m
public void setIncrementalBackupIntervalMinutes(int minutes) {
    incrementalBackupInterval = Minutes.minutes(minutes);
}

From source file:com.metamx.druid.query.group.GroupByQueryQueryToolChest.java

License:Open Source License

@Override
public ServiceMetricEvent.Builder makeMetricBuilder(GroupByQuery query) {
    int numMinutes = 0;
    for (Interval interval : query.getIntervals()) {
        numMinutes += Minutes.minutesIn(interval).getMinutes();
    }/*from w  w  w. j a v a  2 s .co m*/

    return new ServiceMetricEvent.Builder().setUser2(query.getDataSource())
            .setUser3(String.format("%,d dims", query.getDimensions().size())).setUser4("groupBy")
            .setUser5(Joiner.on(",").join(query.getIntervals())).setUser6(String.valueOf(query.hasFilters()))
            .setUser7(String.format("%,d aggs", query.getAggregatorSpecs().size()))
            .setUser9(Minutes.minutes(numMinutes).toString());
}

From source file:com.metamx.druid.query.metadata.SegmentMetadataQueryQueryToolChest.java

License:Open Source License

@Override
public ServiceMetricEvent.Builder makeMetricBuilder(SegmentMetadataQuery query) {
    int numMinutes = 0;
    for (Interval interval : query.getIntervals()) {
        numMinutes += Minutes.minutesIn(interval).getMinutes();
    }/*w  ww .  j  a  v  a2 s. c  o m*/

    return new ServiceMetricEvent.Builder().setUser2(query.getDataSource()).setUser4(query.getType())
            .setUser5(Joiner.on(",").join(query.getIntervals())).setUser6(String.valueOf(query.hasFilters()))
            .setUser9(Minutes.minutes(numMinutes).toString());
}

From source file:com.metamx.druid.query.search.SearchQueryQueryToolChest.java

License:Open Source License

@Override
public ServiceMetricEvent.Builder makeMetricBuilder(SearchQuery query) {
    int numMinutes = 0;
    for (Interval interval : query.getIntervals()) {
        numMinutes += Minutes.minutesIn(interval).getMinutes();
    }//from   www . j  a  v  a  2 s.co  m

    return new ServiceMetricEvent.Builder().setUser2(query.getDataSource()).setUser4("search")
            .setUser5(COMMA_JOIN.join(query.getIntervals())).setUser6(String.valueOf(query.hasFilters()))
            .setUser9(Minutes.minutes(numMinutes).toString());
}

From source file:com.metamx.druid.query.timeseries.TimeseriesQueryQueryToolChest.java

License:Open Source License

@Override
public ServiceMetricEvent.Builder makeMetricBuilder(TimeseriesQuery query) {
    int numMinutes = 0;
    for (Interval interval : query.getIntervals()) {
        numMinutes += Minutes.minutesIn(interval).getMinutes();
    }/*from   w ww  . jav  a 2 s.co m*/

    return new ServiceMetricEvent.Builder().setUser2(query.getDataSource()).setUser4("timeseries")
            .setUser5(COMMA_JOIN.join(query.getIntervals())).setUser6(String.valueOf(query.hasFilters()))
            .setUser7(String.format("%,d aggs", query.getAggregatorSpecs().size()))
            .setUser9(Minutes.minutes(numMinutes).toString());
}

From source file:com.microsoft.hsg.android.simplexml.client.HealthVaultRestClient.java

License:Open Source License

public void tokenRefresh(Connection connection) {
    if (Minutes.minutesBetween(DateTime.now(), mLastRefreshedSessionCredential)
            .isGreaterThan(Minutes.minutes(mSessionCredentialCallThresholdMinutes))) {
        connection.getAuthenticator().authenticate(connection, true);
        mLastRefreshedSessionCredential = DateTime.now();
        mSettings.setSessionExpiration();
    }/*from  ww w  .  j  a v a 2 s  .c  o m*/
}

From source file:com.pacoapp.paco.shared.scheduling.EsmGenerator2.java

License:Open Source License

public List<DateTime> generateForSchedule(DateTime startDate, Schedule schedule2) {
    this.schedule = schedule2;
    this.periodStartDate = adjustStartDateToBeginningOfPeriod(startDate);
    times = new ArrayList<DateTime>();

    if (schedule2.getEsmFrequency() == null || schedule2.getEsmFrequency() == 0) {
        return times;
    }//from w w w .  java2  s . c om
    List<Integer> schedulableDays;
    switch (schedule2.getEsmPeriodInDays()) {
    case Schedule.ESM_PERIOD_DAY:
        if (!schedule2.getEsmWeekends() && TimeUtil.isWeekend(periodStartDate)) {
            return times;
        } else {
            schedulableDays = Arrays.asList(1);
        }
        break;
    case Schedule.ESM_PERIOD_WEEK:
        schedulableDays = getPeriodDaysForWeek();
        break;
    case Schedule.ESM_PERIOD_MONTH:
        schedulableDays = getPeriodDaysForMonthOf(periodStartDate);
        break;
    default:
        throw new IllegalStateException("Cannot get here.");
    }

    Minutes dayLengthIntervalInMinutes = Minutes
            .minutesIn(new Interval(schedule2.getEsmStartHour(), schedule2.getEsmEndHour()));
    Minutes totalMinutesInPeriod = dayLengthIntervalInMinutes.multipliedBy(schedulableDays.size());
    Minutes sampleBlockTimeInMinutes = totalMinutesInPeriod.dividedBy(schedule2.getEsmFrequency());
    Minutes timeoutInMinutes = Minutes.minutes(schedule2.getMinimumBuffer());
    Random rand = new Random();
    for (int signal = 0; signal < schedule2.getEsmFrequency(); signal++) {

        int candidateTimeInBlock;
        DateTime candidateTime;
        int periodAttempts = 1000;
        do {
            candidateTimeInBlock = rand.nextInt(sampleBlockTimeInMinutes.getMinutes());
            // map candidatePeriod and candidateTime back onto days of period
            // note, sometimes a candidate period will map across days in period
            // because start and end hours make for non-contiguous days
            int totalMinutesToAdd = sampleBlockTimeInMinutes.getMinutes() * signal + candidateTimeInBlock;
            int daysToAdd = totalMinutesToAdd / dayLengthIntervalInMinutes.getMinutes();
            int minutesToAdd = 0;
            if (totalMinutesToAdd <= dayLengthIntervalInMinutes.getMinutes()) { // within one day
                minutesToAdd = totalMinutesToAdd;
            } else {
                minutesToAdd = totalMinutesToAdd % dayLengthIntervalInMinutes.getMinutes();
            }

            DateTime plusDays = periodStartDate.plusDays(schedulableDays.get(daysToAdd) - 1);
            candidateTime = plusDays.withMillisOfDay(schedule2.getEsmStartHour().intValue())
                    .plusMinutes(minutesToAdd);
            periodAttempts--;
        } while (periodAttempts > 0
                && (!isMinimalBufferedDistanceFromOtherTimes(candidateTime, timeoutInMinutes)
                        || (!schedule2.getEsmWeekends() && TimeUtil.isWeekend(candidateTime))));
        if (isMinimalBufferedDistanceFromOtherTimes(candidateTime, timeoutInMinutes)
                && (schedule2.getEsmWeekends() || !TimeUtil.isWeekend(candidateTime))) {
            times.add(candidateTime);
        }

    }
    return times;
}

From source file:dk.nsi.haiba.lprimporter.rules.ConnectContactsRule.java

License:Open Source License

@Override
public LPRRule doProcessing(Statistics statistics) {

    // Overlapping contacts has been sorted out now, so sort the contacts by in date
    Collections.sort(contacts, new AdministrationInDateComparator());

    if (contacts.size() > 1) {
        Administration previousContact = null;
        for (Administration contact : contacts) {
            if (previousContact == null) {
                previousContact = contact;
                continue;
            }//from   ww w  .  j a v a2s  .  c  o m

            DateTime previousOut = new DateTime(previousContact.getUdskrivningsDatetime());
            DateTime in = new DateTime(contact.getIndlaeggelsesDatetime());

            // if same hospital
            if (previousContact.getSygehusCode().equals(contact.getSygehusCode())) {
                // check if gap is <= "sameHospitalDifference" in hours
                if (Minutes.minutesBetween(previousOut, in).isGreaterThan(Minutes.minutes(0))
                        && Minutes.minutesBetween(previousOut, in)
                                .isLessThan(Minutes.minutes(sameHospitalDifference * 60 + 1))) {

                    // Increment counter for rule #13
                    statistics.rule13Counter += 1;
                    previousContact.setUdskrivningsDatetime(contact.getIndlaeggelsesDatetime());
                }
            } else {
                // else if different hospital

                // check if gap is <= "differentHospitalDifference" in hours
                if (Minutes.minutesBetween(previousOut, in).isGreaterThan(Minutes.minutes(0))
                        && Minutes.minutesBetween(previousOut, in)
                                .isLessThan(Minutes.minutes(differentHospitalDifference * 60 + 1))) {

                    // Increment counter for rule #13
                    statistics.rule13Counter += 1;
                    previousContact.setUdskrivningsDatetime(contact.getIndlaeggelsesDatetime());
                }
            }
            // set previous to current, for the next iteration
            previousContact = contact;
        }
    } else {
        log.trace("Only one contact in list");
    }

    // setup the next rule in the chain
    contactToAdmissionRule.setContacts(contacts);

    return contactToAdmissionRule;
}