Example usage for org.joda.time DateTime getDayOfWeek

List of usage examples for org.joda.time DateTime getDayOfWeek

Introduction

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

Prototype

public int getDayOfWeek() 

Source Link

Document

Get the day of week field value.

Usage

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());
    }
}