org.joda.time.LocalDate#plusWeeks ( )源码实例Demo

下面列出了org.joda.time.LocalDate#plusWeeks ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: onetwo   文件: DateRangeStaticFacotry.java
public static Collection<DateRange> splitAsDateRangeByWeek(LocalDate start, LocalDate end){
	
	Set<DateRange> dates = new LinkedHashSet<DateRange>();
	dates.add(new DateRange(start, start.withDayOfWeek(DateTimeConstants.SUNDAY)));
	
	LocalDate startDateOfWeek = start.withDayOfWeek(DateTimeConstants.MONDAY).plusWeeks(1);
	while(!startDateOfWeek.isAfter(end)){
		LocalDate endDateOfWeek = startDateOfWeek.withDayOfWeek(DateTimeConstants.SUNDAY);
		if(endDateOfWeek.isAfter(end)){
			endDateOfWeek = end;
		}
		dates.add(new DateRange(startDateOfWeek, endDateOfWeek));
		startDateOfWeek = startDateOfWeek.plusWeeks(1);
	}
	return dates;
}
 
@Override
protected ArrayList<DateHolder> generatePeriod() {
    ArrayList<DateHolder> dates = new ArrayList<DateHolder>();
    checkDate = new LocalDate(cPeriod);
    int counter = 0;
    int quantity = checkDate.weekOfWeekyear().getMaximumValue()/2;
    while ((openFuturePeriods > 0 || currentDate.isAfter(checkDate.plusWeeks(2))) && counter < quantity) {
        String year = checkDate.year().getAsString();
        String cDate = checkDate.toString();
        String nDate = checkDate.plusWeeks(2).minusDays(1).toString();

        String date = String.format(DATE_FORMAT, year, periodApi, counter+1);
        String label = String.format(DATE_LABEL_FORMAT, periodHumanReedable, counter+1, cDate, nDate);

        if (checkDate.isBefore(maxDate) && isInInputPeriods(date)) {
            DateHolder dateHolder = new DateHolder(date, checkDate.toString(), label);
            dates.add(dateHolder);
        }

        counter++;
        checkDate = checkDate.plusWeeks(2);
    }

    Collections.reverse(dates);
    return dates;
}
 
@Override
protected LocalDate getMaxDateCanEdit() {
    String periodFixed = period.replace("Bi","");
    int weeks = Integer.parseInt(periodFixed.substring(periodFixed.lastIndexOf("W")+1));
    int year = Integer.parseInt(periodFixed.substring(0, periodFixed.lastIndexOf("W")));
    int count =0;
    LocalDate checkDate = new LocalDate( new LocalDate().withYear(year).withWeekOfWeekyear(1).withDayOfWeek(1));
    while(count<weeks){
        checkDate = checkDate.plusWeeks(2);
        count++;
    }
    return checkDate.minusDays(1).plusDays(expiryDays - 1);
}
 
public BiWeekIterator(int openFP, String[] dataInputPeriods) {
    super(dataInputPeriods);
    openFuturePeriods = openFP;
    cPeriod = new LocalDate(currentDate.withWeekOfWeekyear(1).withDayOfWeek(1));
    checkDate = new LocalDate(cPeriod);
    maxDate = new LocalDate(currentDate.getYear(), currentDate.getMonthOfYear(), currentDate.getDayOfMonth());
    maxDate = maxDate.minusDays(currentDate.getDayOfWeek());
    if(openFuturePeriods>1) {
        for (int i = 0; i < (openFuturePeriods-1) / 2; i++) {
            maxDate = maxDate.plusWeeks(2);
        }
    }
}
 
@Override
protected ArrayList<DateHolder> generatePeriod() {
    ArrayList<DateHolder> dates = new ArrayList<DateHolder>();
    checkDate = new LocalDate(cPeriod);
    int counter = 0;
    int quantity = checkDate.weekOfWeekyear().getMaximumValue();
    while ((openFuturePeriods > 0 || currentDate.isAfter(checkDate.plusWeeks(1).minusDays(1))) && counter < quantity) {
        String year = checkDate.year().getAsString();
        String cWeekNumber = checkDate.weekOfWeekyear().getAsString();
        String cDate = checkDate.toString();
        String nDate = checkDate.plusWeeks(1).minusDays(1).toString();

        String date = String.format(DATE_FORMAT, year, W, cWeekNumber);
        String label = String.format(DATE_LABEL_FORMAT, W, cWeekNumber, cDate, nDate);

        if (checkDate.isBefore(maxDate) && isInInputPeriods(date)) {
            DateHolder dateHolder = new DateHolder(date, checkDate.toString(), label);
            dates.add(dateHolder);
        }

        counter++;
        checkDate = checkDate.plusWeeks(1);
    }

    Collections.reverse(dates);
    return dates;
}
 
@Override
protected ArrayList<DateHolder> generatePeriod() {
    ArrayList<DateHolder> dates = new ArrayList<DateHolder>();
    checkDate = new LocalDate(cPeriod);
    int counter = 0;
    int quantity = checkDate.weekOfWeekyear().getMaximumValue();
    while ((openFuturePeriods > 0 || currentDate.isAfter(checkDate.plusWeeks(1).minusDays(1))) && counter < quantity) {
        String year = checkDate.year().getAsString();
        String cWeekNumber = checkDate.weekOfWeekyear().getAsString();
        String cDate = checkDate.toString();
        String nDate = checkDate.plusWeeks(1).minusDays(1).toString();

        String date = String.format(DATE_FORMAT, year, W, cWeekNumber);
        String label = String.format(DATE_LABEL_FORMAT, W, cWeekNumber, cDate, nDate);

        if (checkDate.isBefore(maxDate) && isInInputPeriods(date)) {
            DateHolder dateHolder = new DateHolder(date, checkDate.toString(), label);
            dates.add(dateHolder);
        }

        counter++;
        checkDate = checkDate.plusWeeks(1);
    }

    Collections.reverse(dates);
    return dates;
}
 
@Override
protected ArrayList<DateHolder> generatePeriod() {
    ArrayList<DateHolder> dates = new ArrayList<DateHolder>();
    checkDate = new LocalDate(cPeriod);
    int counter = 0;
    int quantity = checkDate.weekOfWeekyear().getMaximumValue();
    while ((openFuturePeriods > 0 || currentDate.isAfter(checkDate.plusWeeks(1).minusDays(1))) && counter < quantity) {
        String year = checkDate.year().getAsString();
        String cWeekNumber = "" + (Integer.parseInt(checkDate.weekOfWeekyear().getAsString())+ 1 );
        String cDate = checkDate.toString();
        String nDate = checkDate.plusWeeks(1).minusDays(1).toString();

        String date = String.format(DATE_FORMAT, year, W, cWeekNumber);
        String label = String.format(DATE_LABEL_FORMAT, W, cWeekNumber, cDate, nDate);

        if (checkDate.isBefore(maxDate) && isInInputPeriods(date)) {
            DateHolder dateHolder = new DateHolder(date, checkDate.toString(), label);
            dates.add(dateHolder);
        }

        counter++;
        checkDate = checkDate.plusWeeks(1);
    }

    Collections.reverse(dates);
    return dates;
}
 
@Override
protected ArrayList<DateHolder> generatePeriod() {
    ArrayList<DateHolder> dates = new ArrayList<DateHolder>();
    checkDate = new LocalDate(cPeriod);
    int counter = 0;
    int quantity = checkDate.weekOfWeekyear().getMaximumValue();
    while ((openFuturePeriods > 0 || currentDate.isAfter(checkDate.plusWeeks(1).minusDays(1))) && counter < quantity) {
        String year = checkDate.year().getAsString();
        String cWeekNumber = "" + (Integer.parseInt(checkDate.weekOfWeekyear().getAsString())+ 1 );
        String cDate = checkDate.toString();
        String nDate = checkDate.plusWeeks(1).minusDays(1).toString();

        String date = String.format(DATE_FORMAT, year, W, cWeekNumber);
        String label = String.format(DATE_LABEL_FORMAT, W, cWeekNumber, cDate, nDate);

        if (checkDate.isBefore(maxDate) && isInInputPeriods(date)) {
            DateHolder dateHolder = new DateHolder(date, checkDate.toString(), label);
            dates.add(dateHolder);
        }

        counter++;
        checkDate = checkDate.plusWeeks(1);
    }

    Collections.reverse(dates);
    return dates;
}
 
源代码9 项目: dhis2-android-datacapture   文件: WeekIterator.java
public WeekIterator(int openFP, String[] dataInputPeriods) {
    super(dataInputPeriods);
    openFuturePeriods = openFP;
    cPeriod = new LocalDate(currentDate.withWeekOfWeekyear(1).withDayOfWeek(1));
    checkDate = new LocalDate(cPeriod);
    maxDate = new LocalDate(currentDate.getYear(), currentDate.getMonthOfYear(), currentDate.getDayOfMonth());
    maxDate = maxDate.minusDays(currentDate.getDayOfWeek());
    for (int i = 0; i < openFuturePeriods; i++) {
        maxDate = maxDate.plusWeeks(1);
    }
}
 
源代码10 项目: dhis2-android-datacapture   文件: WeekIterator.java
@Override
protected ArrayList<DateHolder> generatePeriod() {
    ArrayList<DateHolder> dates = new ArrayList<DateHolder>();
    checkDate = new LocalDate(cPeriod);
    int counter = 0;
    int quantity = checkDate.weekOfWeekyear().getMaximumValue();
    while ((openFuturePeriods > 0 || currentDate.isAfter(checkDate.plusWeeks(1))) && counter < quantity) {
        String year = checkDate.year().getAsString();
        String cWeekNumber = checkDate.weekOfWeekyear().getAsString();
        String cDate = checkDate.toString();
        String nDate = checkDate.plusWeeks(1).minusDays(1).toString();

        String date = String.format(DATE_FORMAT, year, W, cWeekNumber);
        String label = String.format(DATE_LABEL_FORMAT, W, cWeekNumber, cDate, nDate);

        if (checkDate.isBefore(maxDate) && isInInputPeriods(date)) {
            DateHolder dateHolder = new DateHolder(date, checkDate.toString(), label);
            dates.add(dateHolder);
        }

        counter++;
        checkDate = checkDate.plusWeeks(1);
    }

    Collections.reverse(dates);
    return dates;
}
 
源代码11 项目: objectlabkit   文件: LocalDateIMMDateCalculator.java
/**
 * Assumes that the month is correct, get the day for the 2rd wednesday.
 *
 * @param original
 *            the start date
 * @return the 3rd Wednesday of the month
 */
private LocalDate calculate3rdWednesday(final LocalDate original) {
    final LocalDate firstOfMonth = original.withDayOfMonth(1);
    LocalDate firstWed = firstOfMonth.withDayOfWeek(MONTHS_IN_QUARTER);
    if (firstWed.isBefore(firstOfMonth)) {
        firstWed = firstWed.plusWeeks(1);
    }
    return firstWed.plusWeeks(2);
}
 
源代码12 项目: NCalendar   文件: WeekCalendar.java
@Override
protected LocalDate getIntervalDate(LocalDate localDate, int count) {
    return localDate.plusWeeks(count);
}