List of usage examples for org.joda.time LocalDate plusMonths
public LocalDate plusMonths(int months)
From source file:de.symeda.sormas.api.utils.DateHelper.java
License:Open Source License
/** * requries joda-time/*from w w w . j a va2 s .c o m*/ * * <table> * <tr> * <td>90</td> * <td>-></td> * <td>[1/1/1990, 1/1/1991)</td> * </tr> * <tr> * <td>08</td> * <td>-></td> * <td>[1/1/2008, 1/1/2009)</td> * </tr> * <tr> * <td>1830</td> * <td>-></td> * <td>[1/1/1830, 1/1/1831)</td> * </tr> * <tr> * <td>3.01</td> * <td>-></td> * <td>[1/3/2001, 1/4/2001)</td> * </tr> * <tr> * <td>3.</td> * <td>-></td> * <td>[1/3/THIS_YEAR, 1/4/THIS_YEAR)</td> * </tr> * <tr> * <td>3.4.2012</td> * <td>-></td> * <td>[3/4/2012, 4/4/2012)</td> * </tr> * <tr> * <td>3.4.</td> * <td>-></td> * <td>[3/4/THIS_YEAR, 4/4/THIS_YEAR)</td> * </tr> * </table> * * @param name * @param value * @return */ public static Date[] findDateBounds(String value) { if (value == null || value.length() < 2) return null; int day = -1; int month = -1; int year = -1; Matcher matcher = COMPLETE_DATE_PATTERN.matcher(value); if (matcher.matches()) { day = Integer.parseInt(matcher.group(1)); month = Integer.parseInt(matcher.group(3)); year = Integer.parseInt(matcher.group(5)); } else { matcher = DAY_MONTH_DATE_PATTERN.matcher(value); if (matcher.matches()) { day = Integer.parseInt(matcher.group(1)); month = Integer.parseInt(matcher.group(3)); } else { matcher = MONTH_YEAR_DATE_PATTERN.matcher(value); if (matcher.matches()) { month = Integer.parseInt(matcher.group(1)); year = Integer.parseInt(matcher.group(3)); } else { matcher = MONTH_DATE_PATTERN.matcher(value); if (matcher.matches()) { month = Integer.parseInt(matcher.group(1)); } else { matcher = DAY_DATE_PATTERN.matcher(value); if (matcher.matches()) { day = Integer.parseInt(matcher.group(1)); } else { matcher = YEAR_DATE_PATTERN.matcher(value); if (matcher.matches()) { year = Integer.parseInt(matcher.group(1)); } else return null; } } } } } int thisYear = DateTime.now().year().get(); if (year == -1) { year = thisYear; } else if (year < 100) { int thisYearDigits = thisYear % 100; int thisCentury = thisYear - thisYearDigits; if (year < thisYearDigits + 20) year += thisCentury; else year += thisCentury - 100; } LocalDate start = new LocalDate(year, 1, 1); LocalDate end = new LocalDate(year, 1, 1); if (month == -1) end = end.plusMonths(11); else { start = start.plusMonths(month - 1); end = end.plusMonths(month - 1); } if (day == -1) { end = end.plusMonths(1); } else { start = start.plusDays(day - 1); end = end.plusDays(day); } return new Date[] { start.toDate(), end.toDate() }; }
From source file:ee.ut.soras.ajavtV2.mudel.ajavaljend.arvutus.SemLeidmiseAbimeetodid.java
License:Open Source License
/** * Rakendab yldistatud Baldwini akent, et leida hetkele <tt>currentDateTime</tt> l2himat * ajahetke, mis vastab tingimustele <tt>field == soughtValue</tt>. Kui tingimustele vastav * hetk j22b v2lja Baldwini akna raamidest, toimib kui tavaline SET operatsioon, omistades * <tt>field := soughtValue</tt> ajahetke <tt>currentDateTime</tt> raames. * <p>/* w w w .ja v a 2 s . c o m*/ * NB! Praegu on implementeeritud ainult aastaaegade ja kvartalite lahendamine. * <p> * <i>What's the Date? High Accuracy Interpretation of Weekday Name,</i> Dale, Mazur (2009) */ public static LocalDateTime applyBaldwinWindow(Granulaarsus field, LocalDateTime currentDateTime, String soughtValue) { // --------------------------------- // SEASONs // --------------------------------- if (field == Granulaarsus.MONTH && soughtValue != null && soughtValue.matches("(SP|SU|FA|WI)")) { LocalDate movingFocus = new LocalDate(currentDateTime); int addToCurrent = 0; // 1) Vaatame eelnevat 4-a kuud while (addToCurrent > -4) { String currentSeason = getSeason(movingFocus); if (currentSeason.equals(soughtValue)) { return currentDateTime.plusMonths(addToCurrent); } movingFocus = movingFocus.plusMonths(-1); addToCurrent--; } // 2) Vaatame jargnevat 4-a kuud movingFocus = new LocalDate(currentDateTime); addToCurrent = 0; while (addToCurrent < 4) { String currentSeason = getSeason(movingFocus); if (currentSeason.equals(soughtValue)) { return currentDateTime.plusMonths(addToCurrent); } movingFocus = movingFocus.plusMonths(1); addToCurrent++; } // Kui otsitav aastaaeg j2i aknast v2lja, k2sitleme seda kui "selle aasta" otsitud aastaaega return setMiddleOfSeason(currentDateTime, soughtValue); } // --------------------------------- // QUARTER // --------------------------------- if (field == Granulaarsus.MONTH && soughtValue != null && soughtValue.matches("Q(1|2|3|4)")) { LocalDate movingFocus = new LocalDate(currentDateTime); int addToCurrent = 0; // 1) Vaatame eelnevat 4-a kuud while (addToCurrent > -4) { String currentSeason = getQuarterOfYear(movingFocus); if (currentSeason.equals(soughtValue)) { return currentDateTime.plusMonths(addToCurrent); } movingFocus = movingFocus.plusMonths(-1); addToCurrent--; } // 2) Vaatame jargnevat 4-a kuud movingFocus = new LocalDate(currentDateTime); addToCurrent = 0; while (addToCurrent < 4) { String currentSeason = getQuarterOfYear(movingFocus); if (currentSeason.equals(soughtValue)) { return currentDateTime.plusMonths(addToCurrent); } movingFocus = movingFocus.plusMonths(1); addToCurrent++; } // Kui otsitav kvartal j2i aknast v2lja, k2sitleme seda kui "selle aasta" otsitud kvartalit return setMiddleOfQuarterOfYear(currentDateTime, soughtValue); } return null; }
From source file:ee.ut.soras.ajavtV2.mudel.ajavaljend.arvutus.TimeMLDateTimePoint.java
License:Open Source License
public void seekField(Granulaarsus field, int direction, int soughtValue, boolean excludingCurrent) { // --------------------------------- // DAY_OF_MONTH // --------------------------------- if (field == Granulaarsus.DAY_OF_MONTH && direction != 0 && soughtValue == 0) { int dir = (direction > 0) ? (1) : (-1); LocalDate ajaFookus = new LocalDate(this.underlyingDate); LocalDate nihutatudFookus = ajaFookus.plusDays(1 * dir); ajaFookus = nihutatudFookus;// www .ja v a 2 s . c o m this.underlyingDate = ajaFookus; updateDateRepresentation(Granulaarsus.DAY_OF_MONTH, null, false, ADD_TYPE_OPERATION); functionOtherThanSetUsed = true; this.dateModified = true; } // --------------------------------- // DAY_OF_WEEK // --------------------------------- if (field == Granulaarsus.DAY_OF_WEEK && soughtValue >= DateTimeConstants.MONDAY && soughtValue <= DateTimeConstants.SUNDAY && direction != 0) { int dir = (direction > 0) ? (1) : (-1); LocalDate ajaFookus = new LocalDate(this.underlyingDate); // Algne p2ev ehk p2ev, millest tahame tingimata m66duda int algneNadalapaev = (excludingCurrent) ? (ajaFookus.getDayOfWeek()) : (-1); if (!excludingCurrent) { // V6tame sammu tagasi, et esimene nihe tooks meid t2pselt k2esolevale p2evale ajaFookus = ajaFookus.plusDays(dir * (-1)); } int count = 0; while (true) { LocalDate nihutatudFookus = ajaFookus.plusDays(1 * dir); ajaFookus = nihutatudFookus; int uusNadalapaev = ajaFookus.getDayOfWeek(); if (algneNadalapaev != -1) { if (algneNadalapaev == uusNadalapaev) { continue; } else { algneNadalapaev = -1; } } if (uusNadalapaev == soughtValue) { algneNadalapaev = uusNadalapaev; count++; if (count == Math.abs(direction)) { break; } } } this.underlyingDate = ajaFookus; updateDateRepresentation(Granulaarsus.DAY_OF_MONTH, null, false, ADD_TYPE_OPERATION); functionOtherThanSetUsed = true; this.dateModified = true; } // --------------------------------- // WEEK OF YEAR // --------------------------------- if (field == Granulaarsus.WEEK_OF_YEAR && soughtValue == 0 && direction != 0) { int dir = (direction > 0) ? (1) : (-1); LocalDate ajaFookus = new LocalDate(this.underlyingDate); // Algne n2dal ehk n2dal, millest tahame m88duda int algneNadal = (excludingCurrent) ? (ajaFookus.getWeekOfWeekyear()) : (-1); if (!excludingCurrent) { // V6tame sammu tagasi, et esimene nihe tooks meid t2pselt k2esolevale p2evale ajaFookus = ajaFookus.plusDays(dir * (-1)); } int count = 0; while (true) { LocalDate nihutatudFookus = ajaFookus.plusDays(1 * dir); ajaFookus = nihutatudFookus; int uusNadal = nihutatudFookus.getWeekOfWeekyear(); if (algneNadal != -1) { if (algneNadal == uusNadal) { continue; } else { algneNadal = -1; } } if (soughtValue == 0) { algneNadal = uusNadal; count++; if (count == Math.abs(direction)) { break; } } } this.underlyingDate = ajaFookus; updateDateRepresentation(Granulaarsus.WEEK_OF_YEAR, null, false, ADD_TYPE_OPERATION); functionOtherThanSetUsed = true; this.dateModified = true; } // --------------------------------- // MONTH // --------------------------------- if (field == Granulaarsus.MONTH && (soughtValue == 0 || DateTimeConstants.JANUARY <= soughtValue && soughtValue <= DateTimeConstants.DECEMBER) && direction != 0) { int dir = (direction > 0) ? (1) : (-1); LocalDate ajaFookus = new LocalDate(this.underlyingDate); // Algne kuu ehk kuu, millest tahame m88duda int algneKuu = (excludingCurrent) ? (ajaFookus.getMonthOfYear()) : (-1); if (!excludingCurrent) { // V6tame sammu tagasi, et esimene nihe tooks meid t2pselt k2esolevale kuule ajaFookus = ajaFookus.plusMonths(dir * (-1)); } int count = 0; while (true) { LocalDate nihutatudFookus = ajaFookus.plusMonths(1 * dir); ajaFookus = nihutatudFookus; int uusKuu = nihutatudFookus.getMonthOfYear(); if (algneKuu != -1) { if (algneKuu == uusKuu) { continue; } else { algneKuu = -1; } } if (soughtValue == 0 || (soughtValue != 0 && uusKuu == soughtValue)) { algneKuu = uusKuu; count++; if (count == Math.abs(direction)) { break; } } } this.underlyingDate = ajaFookus; updateDateRepresentation(Granulaarsus.MONTH, null, false, ADD_TYPE_OPERATION); functionOtherThanSetUsed = true; this.dateModified = true; } // --------------------------------- // YEAR // --------------------------------- if (field == Granulaarsus.YEAR && soughtValue == 0 && direction != 0) { int dir = (direction > 0) ? (1) : (-1); LocalDate ajaFookus = new LocalDate(this.underlyingDate); // Algne aasta ehk aasta, millest tahame m88duda int algneAasta = (excludingCurrent) ? (ajaFookus.getYear()) : (-1); if (!excludingCurrent) { // V6tame sammu tagasi, et esimene nihe tooks meid t2pselt k2esolevale kuule ajaFookus = ajaFookus.plusMonths(dir * (-1)); } int count = 0; while (true) { LocalDate nihutatudFookus = ajaFookus.plusMonths(1 * dir); ajaFookus = nihutatudFookus; int uusAasta = nihutatudFookus.getYear(); if (algneAasta != -1) { if (algneAasta == uusAasta) { continue; } else { algneAasta = -1; } } if (soughtValue == 0) { algneAasta = uusAasta; count++; if (count == Math.abs(direction)) { break; } } } this.underlyingDate = ajaFookus; updateDateRepresentation(Granulaarsus.YEAR, null, false, ADD_TYPE_OPERATION); functionOtherThanSetUsed = true; this.dateModified = true; } // --------------------------------- // YEAR_OF_CENTURY // --------------------------------- if (field == Granulaarsus.YEAR_OF_CENTURY && direction != 0) { int minValue = SemLeidmiseAbimeetodid.getLocalDateTimeFieldExtremum(this.underlyingDate, DateTimeFieldType.yearOfCentury(), false); int maxValue = SemLeidmiseAbimeetodid.getLocalDateTimeFieldExtremum(this.underlyingDate, DateTimeFieldType.yearOfCentury(), true); if (minValue <= soughtValue && soughtValue <= maxValue) { int dir = (direction > 0) ? (1) : (-1); LocalDate ajaFookus = new LocalDate(this.underlyingDate); // Algne aasta ehk aasta, millest tahame m88duda int algneAasta = (excludingCurrent) ? (ajaFookus.getYearOfCentury()) : (-1); if (!excludingCurrent) { // V6tame sammu tagasi, et esimene nihe tooks meid t2pselt k2esolevale aastale ajaFookus = ajaFookus.plusYears(dir * (-1)); } int count = 0; int cycleCount = 0; while (true) { LocalDate nihutatudFookus = ajaFookus.plusYears(1 * dir); cycleCount++; ajaFookus = nihutatudFookus; int uusAasta = nihutatudFookus.getYearOfCentury(); if (algneAasta != -1) { if (algneAasta == uusAasta) { continue; } else { algneAasta = -1; } } if (uusAasta == soughtValue) { algneAasta = uusAasta; count++; if (count == Math.abs(direction)) { break; } } } this.underlyingDate = ajaFookus; updateDateRepresentation(Granulaarsus.YEAR, null, false, ADD_TYPE_OPERATION); functionOtherThanSetUsed = true; this.dateModified = true; } } // --------------------------------- // CENTURY_OF_ERA // --------------------------------- if (field == Granulaarsus.CENTURY_OF_ERA && soughtValue == 0 && direction != 0) { int dir = (direction > 0) ? (1) : (-1); LocalDate ajaFookus = new LocalDate(this.underlyingDate); // Algne saj ehk sajand, millest tahame m88duda int algneSajand = (excludingCurrent) ? (ajaFookus.getCenturyOfEra()) : (Integer.MIN_VALUE); if (!excludingCurrent) { // V6tame sammu tagasi, et esimene nihe tooks meid t2pselt k2esolevale aastale ajaFookus = ajaFookus.plusYears(dir * (-10)); } int count = 0; while (true) { LocalDate nihutatudFookus = ajaFookus.plusYears(10 * dir); ajaFookus = nihutatudFookus; int uusSajand = nihutatudFookus.getCenturyOfEra(); if (algneSajand != Integer.MIN_VALUE) { if (algneSajand == uusSajand) { continue; } else { algneSajand = Integer.MIN_VALUE; } } if (soughtValue == 0) { algneSajand = uusSajand; count++; if (count == Math.abs(direction)) { break; } } } this.underlyingDate = ajaFookus; updateDateRepresentation(Granulaarsus.CENTURY_OF_ERA, null, false, ADD_TYPE_OPERATION); functionOtherThanSetUsed = true; this.dateModified = true; } }
From source file:energy.usef.agr.workflow.settlement.receive.AgrReceiveSettlementMessageCoordinator.java
License:Apache License
/** * Handle CheckSettlement Event./*from ww w.j a v a2s. co m*/ * * @param event */ @Asynchronous public void handleCheckSettlementEvent( @Observes(during = TransactionPhase.AFTER_COMPLETION) CheckSettlementEvent event) { LOGGER.debug(USEFConstants.LOG_COORDINATOR_START_HANDLING_EVENT, event); LocalDate eventDate = event.getPeriodInMonth(); if (eventDate == null) { eventDate = DateTimeUtil.getCurrentDate().minusMonths(1); } LocalDate startDate = eventDate.withDayOfMonth(1); LocalDate endDate = startDate.plusMonths(1).minusDays(1); List<PlanboardMessage> flexOrderSettlementMessages = corePlanboardBusinessService.findPlanboardMessages( DocumentType.FLEX_ORDER_SETTLEMENT, startDate, endDate, DocumentStatus.RECEIVED); LOGGER.debug( "Fetched [{}] FLEX_ORDER_SETTLEMENTS from PlanboardMessage with status RECEIVED between [{}] and [{}]", flexOrderSettlementMessages.size(), startDate, endDate); Map<String, List<PlanboardMessage>> flexOrderSettlementsPerParticipant = flexOrderSettlementMessages .stream() .collect(Collectors.groupingBy(PlanboardMessage::getParticipantDomain, Collectors.toList())); flexOrderSettlementsPerParticipant .forEach((participant, flexOrderSettlements) -> checkSettlementPerParticipant(participant, flexOrderSettlements, startDate, endDate)); LOGGER.debug(USEFConstants.LOG_COORDINATOR_FINISHED_HANDLING_EVENT, event); }
From source file:energy.usef.brp.workflow.settlement.send.BrpSendSettlementMessagesCoordinator.java
License:Apache License
@Asynchronous @Lock(LockType.WRITE)/* www . ja v a 2 s . c o m*/ public void isReadyToSendSettlementMessage( @Observes(during = TransactionPhase.AFTER_COMPLETION) CheckInitiateSettlementDoneEvent event) { LOGGER.debug(USEFConstants.LOG_COORDINATOR_START_HANDLING_EVENT, event); LocalDate period = new LocalDate(event.getYear(), event.getMonth(), 1); boolean isNotProcessed = corePlanboardBusinessService.findPlanboardMessages( DocumentType.FLEX_ORDER_SETTLEMENT, period, period.plusMonths(1).minusDays(1), null).size() == 0; if (isNotProcessed && coreSettlementBusinessService.isEachFlexOrderReadyForSettlement(event.getYear(), event.getMonth())) { sendSettlementMessageEventManager .fire(new SendSettlementMessageEvent(event.getYear(), event.getMonth())); } LOGGER.debug(USEFConstants.LOG_COORDINATOR_FINISHED_HANDLING_EVENT, event); }
From source file:energy.usef.core.repository.PtuFlexOrderRepository.java
License:Apache License
/** * Find the Accepted {@link PtuFlexOrder}'s for the requested month and year. * * @param workingDate - The date with requested month and year * @return//from w w w . j a va 2s.c om */ public List<PtuFlexOrder> findAcknowledgedFlexOrdersForMonthInYear(LocalDate workingDate) { StringBuilder sql = new StringBuilder(); sql.append("SELECT fo "); sql.append("FROM PtuFlexOrder fo "); sql.append("WHERE fo.acknowledgementStatus = :acknowledgementStatus "); sql.append(" AND fo.ptuContainer.ptuDate >= :firstDay "); sql.append(" AND fo.ptuContainer.ptuDate <= :lastDay "); Query query = entityManager.createQuery(sql.toString(), PtuFlexOrder.class); query.setParameter("acknowledgementStatus", AcknowledgementStatus.ACCEPTED); query.setParameter("firstDay", workingDate.withDayOfMonth(1).toDateMidnight().toDate(), DATE); query.setParameter("lastDay", workingDate.plusMonths(1).withDayOfMonth(1).minusDays(1).toDateMidnight().toDate(), DATE); return query.getResultList(); }
From source file:energy.usef.dso.workflow.settlement.send.DsoSendSettlementMessagesCoordinator.java
License:Apache License
@Asynchronous @Lock(LockType.WRITE)//from w w w. jav a2 s. c o m public void isReadyToSendSettlementMessage( @Observes(during = TransactionPhase.AFTER_COMPLETION) CheckInitiateSettlementDoneEvent event) { LOGGER.debug(USEFConstants.LOG_COORDINATOR_START_HANDLING_EVENT, event); LocalDate period = new LocalDate(event.getYear(), event.getMonth(), 1); boolean isNotProcessed = corePlanboardBusinessService.findPlanboardMessages( DocumentType.FLEX_ORDER_SETTLEMENT, period, period.plusMonths(1).minusDays(1), null).size() == 0; if (isNotProcessed && coreSettlementBusinessService.isEachFlexOrderReadyForSettlement(event.getYear(), event.getMonth())) { sendSettlementMessageEventManager .fire(new SendSettlementMessageEvent(event.getYear(), event.getMonth())); } LOGGER.debug(USEFConstants.LOG_COORDINATOR_FINISHED_HANDLING_EVENT, event); }
From source file:es.usc.citius.servando.calendula.activities.SummaryCalendarActivity.java
License:Open Source License
private void setupCalendar() { calendar = (CalendarPickerView) findViewById(R.id.calendar_view); calendar.setVerticalScrollBarEnabled(false); RepetitionRule r;/* w w w .j a v a 2 s.c o m*/ String rule = getIntent().getStringExtra("rule"); String date = getIntent().getStringExtra("start"); int activeDays = getIntent().getIntExtra("active_days", -1); int restDays = getIntent().getIntExtra("rest_days", -1); LocalDate from = date != null ? LocalDate.parse(date, fmt) : LocalDate.now(); LocalDate to = from.plusMonths(6); if (rule != null) { r = new RepetitionRule(rule); List<DateTime> dates = r.occurrencesBetween(from.toDateTimeAtStartOfDay(), to.toDateTimeAtStartOfDay(), from.toDateTimeAtStartOfDay()); Set<Date> hdates = new HashSet<>(); for (DateTime d : dates) hdates.add(d.toDate()); List<CalendarCellDecorator> decorators = new ArrayList<>(); DateValue v = r.iCalRule().getUntil(); Date start = date != null ? from.toDate() : null; Date end = v != null ? new LocalDate(v.year(), v.month(), v.day()).toDate() : null; decorators.add(new HighlightDecorator(new ArrayList<>(hdates), start, end, color)); calendar.setDecorators(decorators); } else if (activeDays > 0 && restDays > 0) { List<Date> hdates = new ArrayList<>(); LocalDate d = from.plusDays(0); // copy while (d.isBefore(to)) { if (ScheduleHelper.cycleEnabledForDate(d, from, activeDays, restDays)) { hdates.add(d.toDate()); } d = d.plusDays(1); } List<CalendarCellDecorator> decorators = new ArrayList<>(); //DateValue v = r.iCalRule().getUntil(); //Date start = date != null ? from.toDate() : null; //Date end = v != null ? new LocalDate(v.year(), v.month(), v.day()).toDate() : null; decorators.add(new HighlightDecorator(hdates, from.toDate(), to.toDate(), color)); calendar.setDecorators(decorators); } calendar.init(from.toDate(), to.toDate()) .setShortWeekdays(getResources().getStringArray(R.array.calendar_weekday_names)); }
From source file:es.usc.citius.servando.calendula.fragments.ScheduleImportFragment.java
License:Open Source License
private void setupStartEndDatePickers(View rootView) { if (schedule.start() == null) { schedule.setStart(LocalDate.now()); }//from w ww . j a v a2 s .c o m final LocalDate scheduleStart = schedule.start(); buttonScheduleStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DatePickerDialog dpd = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Log.d(TAG, year + " " + monthOfYear); LocalDate d = new LocalDate(year, monthOfYear + 1, dayOfMonth); setScheduleStart(d); } }, scheduleStart.getYear(), scheduleStart.getMonthOfYear() - 1, scheduleStart.getDayOfMonth()); dpd.show(); } }); buttonScheduleEnd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LocalDate scheduleEnd = schedule.end() != null ? schedule.end() : scheduleStart.plusMonths(3); DatePickerDialog dpd = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { LocalDate d = new LocalDate(year, monthOfYear + 1, dayOfMonth); setScheduleEnd(d); } }, scheduleEnd.getYear(), scheduleEnd.getMonthOfYear() - 1, scheduleEnd.getDayOfMonth()); dpd.show(); } }); buttonScheduleEnd.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setMessage("Do you want this schedule to continue indefinitely?").setCancelable(true) .setPositiveButton(getString(R.string.dialog_yes_option), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { setScheduleEnd(null); } }) .setNegativeButton(getString(R.string.dialog_no_option), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); return true; } }); clearStartButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setScheduleStart(null); } }); clearEndButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setScheduleEnd(null); } }); setScheduleStart(schedule.start()); if (schedule.end() == null && isNew && hasEnd && daysToEnd > 0) { LocalDate end = schedule.start().plusDays(daysToEnd); setScheduleEnd(end); } else { setScheduleEnd(schedule.end()); } }
From source file:es.usc.citius.servando.calendula.fragments.ScheduleTimetableFragment.java
License:Open Source License
void setupStartEndDatePickers(View rootView) { if (schedule.start() == null) { schedule.setStart(LocalDate.now()); }//from w w w . j ava2s. co m final LocalDate scheduleStart = schedule.start(); buttonScheduleStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DatePickerDialog dpd = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Log.d(TAG, year + " " + monthOfYear); LocalDate d = new LocalDate(year, monthOfYear + 1, dayOfMonth); setScheduleStart(d); } }, scheduleStart.getYear(), scheduleStart.getMonthOfYear() - 1, scheduleStart.getDayOfMonth()); dpd.show(); } }); buttonScheduleEnd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LocalDate scheduleEnd = schedule.end() != null ? schedule.end() : scheduleStart.plusMonths(3); DatePickerDialog dpd = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { LocalDate d = new LocalDate(year, monthOfYear + 1, dayOfMonth); setScheduleEnd(d); } }, scheduleEnd.getYear(), scheduleEnd.getMonthOfYear() - 1, scheduleEnd.getDayOfMonth()); dpd.show(); } }); buttonScheduleEnd.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setMessage("Do you want this schedule to continue indefinitely?").setCancelable(true) .setPositiveButton(getString(R.string.dialog_yes_option), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { setScheduleEnd(null); } }) .setNegativeButton(getString(R.string.dialog_no_option), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); return true; } }); clearStartButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setScheduleStart(null); } }); clearEndButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setScheduleEnd(null); } }); setScheduleStart(schedule.start()); setScheduleEnd(schedule.end()); }