Example usage for org.joda.time Weeks weeksBetween

List of usage examples for org.joda.time Weeks weeksBetween

Introduction

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

Prototype

public static Weeks weeksBetween(ReadablePartial start, ReadablePartial end) 

Source Link

Document

Creates a Weeks representing the number of whole weeks between the two specified partial datetimes.

Usage

From source file:com.simopuve.helper.POIHelper.java

public static Integer getWeekNumber(Date currentDate) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(currentDate);/*from  w  ww.  j  a  v  a 2s . c o m*/
    Logger.getLogger(POIHelper.class.getName()).log(Level.INFO, "Received date: "
            + cal.get(Calendar.DAY_OF_MONTH) + "-" + (cal.get(Calendar.MONTH)) + "-" + cal.get(Calendar.YEAR));
    org.joda.time.format.DateTimeFormatter fmt = DateTimeFormat.forPattern("dd-MM-yyy");
    DateTime nowDate = fmt.parseLocalDate(
            cal.get(Calendar.DAY_OF_MONTH) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + cal.get(Calendar.YEAR))
            .toDateTimeAtCurrentTime();
    //DateTime nowDate = new DateTime(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0, 0);
    Weeks w = Weeks.weeksBetween(initDateWeek, nowDate);
    return w.getWeeks() + 435;
}

From source file:com.weekcalendar.WeekCalendarFragment.java

License:Open Source License

/**
 * Set set date of the selected week/*from  w w w .j  ava 2s.c  o  m*/
 */
public void setDateWeek(Calendar calendar) {
    LocalDateTime ldt = LocalDateTime.fromCalendarFields(calendar);
    AppController.getInstance().setSelected(ldt);
    int nextPage = Weeks.weeksBetween(mStartDate, ldt).getWeeks();
    if (nextPage < 0 || (nextPage == 0 && ldt.isBefore(mStartDate))) {
        // make selected date to previous week on viewpager onSelected:
        // if result is negative or it is 0 weeks but earlier than week start date.
        --nextPage;
    }
    if (nextPage >= -mMiddlePoint && nextPage < mMiddlePoint) {
        mViewPager.setCurrentItem(nextPage + mMiddlePoint);
        if (mCalenderListener != null) {
            mCalenderListener.onSelectDate(ldt);
        }
        WeekFragment fragment = (WeekFragment) mViewPager.getAdapter().instantiateItem(mViewPager,
                nextPage + mMiddlePoint);
        fragment.ChangeSelector(ldt);
    }
}

From source file:de.sub.goobi.forms.ProjekteForm.java

License:Open Source License

private Double getThroughputPerDay() {
    DateTime start = new DateTime(this.myProjekt.getStartDate().getTime());
    DateTime end = new DateTime(this.myProjekt.getEndDate().getTime());
    Weeks weeks = Weeks.weeksBetween(start, end);
    logger.trace(weeks.getWeeks());/*from  ww  w .  j  a  va2s . co m*/
    int days = (weeks.getWeeks() * 5);

    if (days < 1) {
        days = 1;
    }
    return (double) this.myProjekt.getNumberOfVolumes() / (double) days;
}

From source file:de.sub.goobi.forms.ProjekteForm.java

License:Open Source License

/**
 * calculate throughput of pages per day.
 *
 * @return calculation/*from w w  w.  ja  va 2 s. co m*/
 */

private Double getThroughputPagesPerDay() {
    DateTime start = new DateTime(this.myProjekt.getStartDate().getTime());
    DateTime end = new DateTime(this.myProjekt.getEndDate().getTime());

    Weeks weeks = Weeks.weeksBetween(start, end);
    int days = (weeks.getWeeks() * 5);
    if (days < 1) {
        days = 1;
    }
    return (double) this.myProjekt.getNumberOfPages() / (double) days;
}

From source file:de.symeda.sormas.api.utils.DateHelper.java

License:Open Source License

/**
 * Calculate weeks between the two given dates. This includes both the start and
 * end dates, so week 1 to week 4 of a year will return 4.
 *//*from  w  w  w .  j av  a 2  s.c o  m*/
public static int getWeeksBetween(Date start, Date end) {
    return Weeks.weeksBetween(new LocalDate(start.getTime()), new LocalDate(end.getTime())).getWeeks() + 1;
}

From source file:divconq.util.TimeUtil.java

License:Open Source License

/**
 * return number of weeks since Jan 5, 1970
 * /*from www.j a  v a2 s  .  co  m*/
 * @param v date to calculate week number off of
 * @return number of weeks
 */
static public int getWeekNumber(DateTime v) {
    DateTime root = new DateTime(1970, 1, 5, 0, 0, 0, 0, v.getZone()); // use the same zone

    return Weeks.weeksBetween(root, v).getWeeks();

    //long n = v.getMillis() - 345600000;  // start of first week
    //return (int) (n / 604800000);
}

From source file:dk.teachus.backend.domain.impl.PeriodImpl.java

License:Apache License

public boolean hasDate(DateMidnight date) {
    boolean hasDate = false;

    // Check weekday
    if (hasWeekDay(date)) {
        // Check start/end date
        if (dateIntervalContains(date)) {
            // If the period has a start date also consider the 
            // repeatEveryWeek factor
            if (beginDate != null && repeatEveryWeek > 1) {
                int weeks = Weeks.weeksBetween(beginDate, date).getWeeks();
                if (weeks % repeatEveryWeek == 0) {
                    hasDate = true;/* www  . j  ava2  s .c om*/
                }
            } else {
                hasDate = true;
            }
        }
    }

    return hasDate;
}

From source file:edu.nyu.vida.data_polygamy.relationship_computation.CorrelationReducer.java

License:BSD License

public static TimeSeriesStats getStats(int temporal, TopologyTimeSeriesWritable timeSeries1,
        TopologyTimeSeriesWritable timeSeries2, boolean temporalPermutationTest) {

    TimeSeriesStats output = new TimeSeriesStats();

    if ((timeSeries1 == null) || (timeSeries2 == null))
        return output;

    // detecting intersection

    long start1 = timeSeries1.getStart();
    long end1 = timeSeries1.getEnd();
    long start2 = timeSeries2.getStart();
    long end2 = timeSeries2.getEnd();

    if (((end1 < start2) && (start1 < start2)) || ((end1 > end2) && (start1 > end2)))
        return output;

    output.setIntersect(true);//w  w w. j  a  va  2 s  .  c  o  m

    DateTime start1Obj = new DateTime(start1 * 1000, DateTimeZone.UTC);
    DateTime end1Obj = new DateTime(end1 * 1000, DateTimeZone.UTC);
    DateTime start2Obj = new DateTime(start2 * 1000, DateTimeZone.UTC);
    DateTime end2Obj = new DateTime(end2 * 1000, DateTimeZone.UTC);

    byte[] eventTimeSeries1 = timeSeries1.getTimeSeries();
    byte[] eventTimeSeries2 = timeSeries2.getTimeSeries();

    int startRange = 0;
    int endRange = 0;

    switch (temporal) {
    case FrameworkUtils.HOUR:
        startRange = (start1 > start2) ? Hours.hoursBetween(start2Obj, start1Obj).getHours()
                : Hours.hoursBetween(start1Obj, start2Obj).getHours();
        endRange = (end1 > end2) ? Hours.hoursBetween(end2Obj, end1Obj).getHours()
                : Hours.hoursBetween(end1Obj, end2Obj).getHours();
        break;
    case FrameworkUtils.DAY:
        startRange = (start1 > start2) ? Days.daysBetween(start2Obj, start1Obj).getDays()
                : Days.daysBetween(start1Obj, start2Obj).getDays();
        endRange = (end1 > end2) ? Days.daysBetween(end2Obj, end1Obj).getDays()
                : Days.daysBetween(end1Obj, end2Obj).getDays();
        break;
    case FrameworkUtils.WEEK:
        startRange = (start1 > start2) ? Weeks.weeksBetween(start2Obj, start1Obj).getWeeks()
                : Weeks.weeksBetween(start1Obj, start2Obj).getWeeks();
        endRange = (end1 > end2) ? Weeks.weeksBetween(end2Obj, end1Obj).getWeeks()
                : Weeks.weeksBetween(end1Obj, end2Obj).getWeeks();
        break;
    case FrameworkUtils.MONTH:
        startRange = (start1 > start2) ? Months.monthsBetween(start2Obj, start1Obj).getMonths()
                : Months.monthsBetween(start1Obj, start2Obj).getMonths();
        endRange = (end1 > end2) ? Months.monthsBetween(end2Obj, end1Obj).getMonths()
                : Months.monthsBetween(end1Obj, end2Obj).getMonths();
        break;
    case FrameworkUtils.YEAR:
        startRange = (start1 > start2) ? Years.yearsBetween(start2Obj, start1Obj).getYears()
                : Years.yearsBetween(start1Obj, start2Obj).getYears();
        endRange = (end1 > end2) ? Years.yearsBetween(end2Obj, end1Obj).getYears()
                : Years.yearsBetween(end1Obj, end2Obj).getYears();
        break;
    default:
        startRange = (start1 > start2) ? Hours.hoursBetween(start2Obj, start1Obj).getHours()
                : Hours.hoursBetween(start1Obj, start2Obj).getHours();
        endRange = (end1 > end2) ? Hours.hoursBetween(end2Obj, end1Obj).getHours()
                : Hours.hoursBetween(end1Obj, end2Obj).getHours();
        break;
    }

    int indexStart1 = (start2 > start1) ? startRange : 0;
    int indexStart2 = (start2 > start1) ? 0 : startRange;
    int indexEnd1 = (end2 > end1) ? eventTimeSeries1.length : eventTimeSeries1.length - endRange;
    int indexEnd2 = (end2 > end1) ? eventTimeSeries2.length - endRange : eventTimeSeries2.length;

    /*DateTime startIntersect = FrameworkUtils.addTime(temporal, indexStart1, start1Obj);
    if (!(startIntersect.isEqual(FrameworkUtils.addTime(temporal, indexStart2, start2Obj)))) {
    System.out.println("Something went wrong... Different starts");
    System.exit(-1);
    }*/

    byte[] timeSeries1Int = Arrays.copyOfRange(eventTimeSeries1, indexStart1, indexEnd1);
    byte[] timeSeries2Int = Arrays.copyOfRange(eventTimeSeries2, indexStart2, indexEnd2);

    if (timeSeries1Int.length != timeSeries2Int.length) {
        System.out.println("Something went wrong... Different sizes");
        System.exit(-1);
    }

    int nMatchEvents = 0;
    int nMatchPosEvents = 0;
    int nMatchNegEvents = 0;
    int nPosFirstNonSecond = 0;
    int nNegFirstNonSecond = 0;
    int nNonFirstPosSecond = 0;
    int nNonFirstNegSecond = 0;

    //String eventDateTime = null;
    int indexD1 = (temporalPermutationTest) ? new Random().nextInt(timeSeries1Int.length) : 0;
    int indexD2 = (temporalPermutationTest) ? new Random().nextInt(timeSeries2Int.length) : 0;
    for (int i = 0; i < timeSeries1Int.length; i++) {
        int j = (indexD1 + i) % timeSeries1Int.length;
        int k = (indexD2 + i) % timeSeries2Int.length;
        byte result = (byte) (timeSeries1Int[j] | timeSeries2Int[k]);

        //eventDateTime = FrameworkUtils.getTemporalStr(
        //        temporal, FrameworkUtils.addTime(temporal, j, startIntersect));

        switch (result) {
        case FrameworkUtils.nonEventsMatch: // both non events
            // do nothing
            break;
        case FrameworkUtils.posEventsMatch: // both positive
            nMatchEvents++;
            nMatchPosEvents++;
            //output.addMatchPosEvents(eventDateTime);
            break;
        case FrameworkUtils.nonEventPosEventMatch: // one positive, one non-event
            if (timeSeries1Int[j] == FrameworkUtils.positiveEvent)
                nPosFirstNonSecond++;
            else
                nNonFirstPosSecond++;
            break;
        case FrameworkUtils.negEventsMatch: // both negative
            nMatchEvents++;
            nMatchPosEvents++;
            //output.addMatchPosEvents(eventDateTime);
            break;
        case FrameworkUtils.nonEventNegEventMatch: // one negative, one non-event
            if (timeSeries1Int[j] == FrameworkUtils.negativeEvent)
                nNegFirstNonSecond++;
            else
                nNonFirstNegSecond++;
            break;
        case FrameworkUtils.negEventPosEventMatch: // one negative, one positive
            nMatchEvents++;
            nMatchNegEvents++;
            //output.addMatchNegEvents(eventDateTime);
            break;
        default:
            System.out.println("Something went wrong... Wrong case");
            System.exit(-1);
        }
    }

    output.setParameters(nMatchEvents, nMatchPosEvents, nMatchNegEvents, nPosFirstNonSecond, nNegFirstNonSecond,
            nNonFirstPosSecond, nNonFirstNegSecond);

    return output;
}

From source file:edu.nyu.vida.data_polygamy.utils.FrameworkUtils.java

License:BSD License

public static int getTimeSteps(int tempRes, int startTime, int endTime) {

    if (startTime > endTime) {
        return 0;
    }/*from ww w  . ja v  a2 s .  c  o  m*/

    int timeSteps = 0;
    DateTime start = new DateTime(((long) startTime) * 1000, DateTimeZone.UTC);
    DateTime end = new DateTime(((long) endTime) * 1000, DateTimeZone.UTC);

    switch (tempRes) {
    case FrameworkUtils.HOUR:
        timeSteps = Hours.hoursBetween(start, end).getHours();
        break;
    case FrameworkUtils.DAY:
        timeSteps = Days.daysBetween(start, end).getDays();
        break;
    case FrameworkUtils.WEEK:
        timeSteps = Weeks.weeksBetween(start, end).getWeeks();
        break;
    case FrameworkUtils.MONTH:
        timeSteps = Months.monthsBetween(start, end).getMonths();
        break;
    case FrameworkUtils.YEAR:
        timeSteps = Years.yearsBetween(start, end).getYears();
        break;
    default:
        timeSteps = Hours.hoursBetween(start, end).getHours();
        break;
    }
    timeSteps++;

    return timeSteps;
}

From source file:influent.server.utilities.DateRangeBuilder.java

License:MIT License

public static FL_DateRange getDateRange(DateTime startDate, DateTime endDate) {

    if (startDate == null || endDate == null) {
        return null;
    }//from   w w  w.j a va2  s. c  om

    // TODO: add support for numIntervalsPerBin, but on the client resource side in charts only.
    Days days = Days.daysBetween(startDate, endDate);
    if (days.getDays() == 14) {
        return new ConstrainedDateRange(startDate, FL_DateInterval.DAYS, 14L);
    }
    //      if (days.getDays() == 30) { return new ConstrainedDateRange(startDate, FL_DateInterval.DAYS, 15L, 2); }
    //      if (days.getDays() == 60) { return new ConstrainedDateRange(startDate, FL_DateInterval.DAYS, 15L, 4); }
    Weeks weeks = Weeks.weeksBetween(startDate, endDate);
    if (weeks.getWeeks() == 16) {
        return new ConstrainedDateRange(startDate, FL_DateInterval.WEEKS, 16L);
    }
    //      if (weeks.getWeeks() == 32) { return new ConstrainedDateRange(startDate, FL_DateInterval.WEEKS, 16L, 2); }
    Months months = Months.monthsBetween(startDate, endDate);
    if (months.getMonths() == 12) {
        return new ConstrainedDateRange(startDate, FL_DateInterval.MONTHS, 12L);
    }
    if (months.getMonths() == 16) {
        return new ConstrainedDateRange(startDate, FL_DateInterval.MONTHS, 16L);
    }
    //      if (months.getMonths() == 24) { return new ConstrainedDateRange(startDate, FL_DateInterval.MONTHS, 16L, 2); }
    if (months.getMonths() == 32) {
        return new ConstrainedDateRange(startDate, FL_DateInterval.QUARTERS, 12L);
    }
    Years years = Years.yearsBetween(startDate, endDate);
    if (years.getYears() == 4) {
        return new ConstrainedDateRange(startDate, FL_DateInterval.QUARTERS, 16L);
    }
    //      if (years.getYears() == 8) { return new ConstrainedDateRange(startDate, FL_DateInterval.QUARTERS, 16L, 2); }
    if (years.getYears() == 16) {
        return new ConstrainedDateRange(startDate, FL_DateInterval.YEARS, 16L);
    }

    throw new RuntimeException("Unsupported chart date range: " + startDate + " to " + endDate);
}