List of usage examples for org.joda.time Minutes Minutes
private Minutes(int minutes)
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; }