List of usage examples for org.joda.time DateTime getDayOfWeek
public int getDayOfWeek()
From source file:com.qcadoo.view.internal.components.ganttChart.GanttChartScaleImpl.java
License:Open Source License
private JSONObject getWeeksScale() throws JSONException { DateTime dateTimeFrom = new DateTime(dateFrom); DateTime dateTimeTo = new DateTime(dateTo); int dateTimeFromDayOfWeek = dateTimeFrom.getDayOfWeek(); int dateTimeToDayOfWeek = dateTimeTo.getDayOfWeek(); List<Integer> weekNumbers = new ArrayList<Integer>(); int lastAddedWeekNumber = 0; while (dateTimeFrom.compareTo(dateTimeTo) < 0) { lastAddedWeekNumber = dateTimeFrom.getWeekOfWeekyear(); weekNumbers.add(lastAddedWeekNumber); dateTimeFrom = dateTimeFrom.plusWeeks(1); }//from www. j a va 2 s . c o m if (dateTimeTo.getWeekOfWeekyear() > lastAddedWeekNumber) { lastAddedWeekNumber = dateTimeTo.getWeekOfWeekyear(); weekNumbers.add(lastAddedWeekNumber); } JSONArray weeksArray = new JSONArray(); for (int i = 0; i < weekNumbers.size(); i++) { if (i == 0 && dateTimeFromDayOfWeek > 5) { weeksArray.put(weekNumbers.get(i).toString()); } else if (i == weekNumbers.size() - 1 && dateTimeToDayOfWeek < 3) { weeksArray.put(weekNumbers.get(i).toString()); } else { weeksArray.put(ganttChartComponentState.translate("week") + " " + weekNumbers.get(i)); } } JSONObject scaleObject = new JSONObject(); JSONArray weekDays = new JSONArray(); weekDays.put(ganttChartComponentState.translate("weekDay.short.monday")); weekDays.put(ganttChartComponentState.translate("weekDay.short.tuesday")); weekDays.put(ganttChartComponentState.translate("weekDay.short.wensday")); weekDays.put(ganttChartComponentState.translate("weekDay.short.thursday")); weekDays.put(ganttChartComponentState.translate("weekDay.short.friday")); weekDays.put(ganttChartComponentState.translate("weekDay.short.saturday")); weekDays.put(ganttChartComponentState.translate("weekDay.short.sunday")); scaleObject.put(JSON_ELEMENTS_IN_CATEGORY, 7); scaleObject.put("elementLabelsValues", weekDays); scaleObject.put("firstCategoryFirstElement", dateTimeFromDayOfWeek); scaleObject.put("lastCategoryLastElement", dateTimeToDayOfWeek); scaleObject.put(JSON_CATEGORIES, weeksArray); return scaleObject; }
From source file:com.rhythm.swagr.SwagrStructure.java
License:Apache License
public void removeWeekEnds() { List<Long> toBeRemoved = new ArrayList<Long>(); if (!idMap.isEmpty()) { for (int idKey : idMap.keySet()) { Map<Long, List<SwagrStatPB.Builder>> dtMap = idMap.get(idKey); for (long dtKey : dtMap.keySet()) { DateTime dt = new DateTime(dtKey * 1000); if (dt.getDayOfWeek() == 6 || dt.getDayOfWeek() == 7) toBeRemoved.add(dtKey); }//from w ww . j a v a 2 s.c o m for (long rmKey : toBeRemoved) { dtMap.remove(rmKey); } } } else { for (String idKey : stringMap.keySet()) { Map<Long, List<SwagrStatPB.Builder>> dtMap = stringMap.get(idKey); for (long dtKey : dtMap.keySet()) { DateTime dt = new DateTime(dtKey * 1000); if (dt.getDayOfWeek() == 6 || dt.getDayOfWeek() == 7) toBeRemoved.add(dtKey); } for (long rmKey : toBeRemoved) { dtMap.remove(rmKey); } } } }
From source file:com.rhythm.swagr.SwagrStructure.java
License:Apache License
public void compressWeeks() { /*/*from ww w .j a v a2s . com*/ * Days 1-7 need to be average together into Day 1 and then Days 2-7 need to be dropped from corresponding date map * dtmaps are hashmaps so i won't know the order. for days 2-7, i need to recompute monday and shove current data into it, issue there is that successive averages are not the same as one total average. * Instead of iterating through the datemap i could just calculate every monday within the given date range? * Then, iterate through mondays, calculating every other day of the week and accessing it, then adding it to a toBeRemoved list. */ List<Long> toBeRemoved = new ArrayList<Long>(); if (!idMap.isEmpty()) { for (int idKey : idMap.keySet()) { Map<Long, List<SwagrStatPB.Builder>> dtMap = idMap.get(idKey); for (long dtKey : dtMap.keySet()) { DateTime dt = new DateTime(dtKey * 1000); int dayOfWk = dt.getDayOfWeek(); if (dayOfWk == 2 || dayOfWk == 3 || dayOfWk == 4 || dayOfWk == 5 || dayOfWk == 6 || dayOfWk == 7) toBeRemoved.add(dtKey); // dtMap.get(dtKey); } for (long rmKey : toBeRemoved) { dtMap.remove(rmKey); } } } else { for (String idKey : stringMap.keySet()) { Map<Long, List<SwagrStatPB.Builder>> dtMap = stringMap.get(idKey); for (long dtKey : dtMap.keySet()) { DateTime dt = new DateTime(dtKey * 1000); if (dt.getDayOfWeek() == 6 || dt.getDayOfWeek() == 7) toBeRemoved.add(dtKey); } for (long rmKey : toBeRemoved) { dtMap.remove(rmKey); } } } }
From source file:com.serotonin.mango.util.DateUtils.java
License:Open Source License
public static DateTime truncateDateTime(DateTime time, int periodType) { if (periodType == TimePeriods.SECONDS) time = time.minus(time.getMillisOfSecond()); else if (periodType == TimePeriods.MINUTES) { time = time.minus(time.getMillisOfSecond()); time = time.minus(Common.getPeriod(TimePeriods.SECONDS, time.getSecondOfMinute())); } else if (periodType == TimePeriods.HOURS) { time = time.minus(time.getMillisOfSecond()); time = time.minus(Common.getPeriod(TimePeriods.SECONDS, time.getSecondOfMinute())); time = time.minus(Common.getPeriod(TimePeriods.MINUTES, time.getMinuteOfHour())); } else if (periodType == TimePeriods.DAYS) { time = time.minus(time.getMillisOfDay()); } else if (periodType == TimePeriods.WEEKS) { time = time.minus(time.getMillisOfDay()); time = time.minus(Common.getPeriod(TimePeriods.DAYS, time.getDayOfWeek() - 1)); } else if (periodType == TimePeriods.MONTHS) { time = time.minus(time.getMillisOfDay()); time = time.minus(Common.getPeriod(TimePeriods.DAYS, time.getDayOfMonth() - 1)); } else if (periodType == TimePeriods.YEARS) { time = time.minus(time.getMillisOfDay()); time = time.minus(Common.getPeriod(TimePeriods.DAYS, time.getDayOfYear() - 1)); }/*from w w w . ja v a 2 s. com*/ return time; }
From source file:com.serotonin.mango.vo.mailingList.MailingList.java
License:Open Source License
private static int getIntervalIdAt(DateTime dt) { int interval = 0; interval += dt.getMinuteOfHour() / 15; interval += dt.getHourOfDay() * 4;//from w ww . j a v a 2s . c o m interval += (dt.getDayOfWeek() - 1) * 96; return interval; }
From source file:com.sheepdog.mashmesh.models.VolunteerProfile.java
License:Apache License
private List<Interval> getAvailableIntervals(DateTime aroundDateTime) { List<Interval> intervals = new ArrayList<Interval>(); Map<Integer, DateTime> adjacentDays = new HashMap<Integer, DateTime>(3); // Construct a map from days of the week to DateTimes representing adjacent days. for (int i = -1; i <= 1; i++) { DateTime dateTime = aroundDateTime.plusDays(i); int day = dateTime.getDayOfWeek(); adjacentDays.put(day, dateTime); }/*from www . java2s .c o m*/ // Construct Intervals from time periods in adjacent days. for (AvailableTimePeriod availableTimePeriod : availableTimePeriods) { if (adjacentDays.containsKey(availableTimePeriod.getDay())) { LocalDate date = adjacentDays.get(availableTimePeriod.getDay()).toLocalDate(); DateTime start = date.toDateTime(availableTimePeriod.getStartTime(), aroundDateTime.getZone()); DateTime end = date.toDateTime(availableTimePeriod.getEndTime(), aroundDateTime.getZone()); // Allow 00:00 - 00:00 to express 00:00 - 24:00 as we can't serialize a // LocalTime representing 24:00. if (end.compareTo(start) <= 0) { end = end.plusDays(1); } intervals.add(new Interval(start, end)); } } // Sort the Intervals so that adjacent time periods abut. Assumes that intervals don't overlap. Collections.sort(intervals, new Comparator<Interval>() { @Override public int compare(Interval i1, Interval i2) { return new Long(i1.getStartMillis()).compareTo(i2.getStartMillis()); } }); // Merge abutting intervals together List<Interval> mergedIntervals = new ArrayList<Interval>(); Interval lastInterval = null; for (Interval interval : intervals) { if (lastInterval != null && lastInterval.abuts(interval)) { mergedIntervals.remove(mergedIntervals.size() - 1); interval = lastInterval.withEnd(interval.getEnd()); } lastInterval = interval; mergedIntervals.add(interval); } return mergedIntervals; }
From source file:com.sos.scheduler.model.objects.IntervalConstants.java
License:Apache License
public Interval getInterval() { DateTime from = new DateTime(); DateTime to = null;/*from w w w.j ava2 s . c o m*/ switch (this) { case CURRENT_DAY: from = from.minusMillis(from.getMillisOfDay()); to = from.plusDays(1); break; case CURRENT_WEEK: from = from.minusMillis(from.getMillisOfDay()).minusDays(from.getDayOfWeek()); to = from.plusWeeks(1); break; case REST_OF_DAY: to = from.minusMillis(from.getMillisOfDay()).plusDays(1); break; case NEXT_24H: to = from.plusDays(1); break; case NEXT_WEEK: to = from.plusWeeks(1); break; } return new Interval(from, to); }
From source file:com.sos.scheduler.model.objects.JodaTools.java
License:Apache License
/** * \brief calculate a date for a specific weekday based on a given date * \detail/*from w ww. j av a2 s .c o m*/ * @param date - the base date * @param weekday - the weekday * @return */ public static DateTime getNextWeekday(DateTime date, int weekday) { if (date.getDayOfWeek() > weekday) date = date.plusWeeks(1); return date.withDayOfWeek(weekday); }
From source file:com.sos.scheduler.model.objects.JodaTools.java
License:Apache License
/** * \brief calculate a date for a specific weekday based on a given date * \detail//from w w w .j ava2s . c o m * * @param date * @param weekday * @return */ public static DateTime getPreviousWeekday(DateTime date, int weekday) { if (date.getDayOfWeek() < weekday) date = date.minusWeeks(1); return date.withDayOfWeek(weekday); }
From source file:com.splicemachine.derby.utils.SpliceDateFunctions.java
License:Apache License
/** * Implements the NEXT_DAY function/* w w w . java 2s. co m*/ */ public static Date NEXT_DAY(Date source, String weekday) throws SQLException { if (source == null || weekday == null) return source; String lowerWeekday = weekday.toLowerCase(); if (!WEEK_DAY_MAP.containsKey(lowerWeekday)) { throw PublicAPI.wrapStandardException(ErrorState.LANG_INVALID_DAY.newException(weekday)); } DateTime dt = new DateTime(source); int increment = WEEK_DAY_MAP.get(lowerWeekday) - dt.getDayOfWeek() - 1; if (increment > 0) { return new Date(dt.plusDays(increment).getMillis()); } else { return new Date(dt.plusDays(7 + increment).getMillis()); } }