Example usage for org.joda.time DateTime plusDays

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

Introduction

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

Prototype

public DateTime plusDays(int days) 

Source Link

Document

Returns a copy of this datetime plus the specified number of days.

Usage

From source file:dk.dma.arcticweb.service.AppDataServiceBean.java

License:Apache License

private void createOrasilaTestData() {
    logger.info("BEFORE CREATION - ORASILA");

    // Create vessel and user
    Vessel newVessel = new Vessel();
    newVessel.setMmsi(220443000L);/*from   w  ww .j  a  v a2s. com*/
    newVessel.setCommCapabilities("Sat C 0581 422044310, GMDSS A1+A2+A3");
    newVessel.setMaxSpeed(BigDecimal.valueOf(12.6));
    newVessel.setGrossTonnage(2194);
    newVessel.setIceClass("A1");
    newVessel.setHelipad(Boolean.FALSE);
    newVessel.getAisData().setImoNo(9336725L);
    newVessel.getAisData().setName("ORASILA");
    newVessel.getAisData().setCallsign("OYDK2");

    newVessel = vesselDao.saveEntity(newVessel);

    SailorRole sailorRole = new SailorRole();
    sailorRole.setVessel(newVessel);

    vesselDao.saveEntity(sailorRole);

    SecuredUser user = SecurityUtil.createUser("orasila", testPassword, testEmail, null);
    user.setRole(sailorRole);

    vesselDao.saveEntity(user);

    DateTime now = DateTime.now(DateTimeZone.UTC);

    newVessel.addVoyageEntry(new Voyage("Is never shown", "25 47.16N", "080 22.410W", null,
            now.minusDays(6).withTime(17, 0, 0, 0), 0, 0, false));
    newVessel.addVoyageEntry(new Voyage("Miami", "25 47.16N", "080 13.27W",
            now.minusDays(4).withTime(9, 30, 0, 0), now.minusDays(3).withTime(17, 0, 0, 0), 12, 0, true));
    newVessel.addVoyageEntry(new Voyage("Nuuk", "64 10.4N", "051 43.5W", now.plusDays(3).withTime(10, 30, 0, 0),
            now.plusDays(5).withTime(9, 0, 0, 0), 12, 0, true));
    newVessel.addVoyageEntry(new Voyage("Thule", "77 27.8N", "069 14.0W",
            now.plusDays(9).withTime(13, 15, 0, 0), now.plusDays(11).withTime(9, 0, 0, 0)));
    newVessel.addVoyageEntry(new Voyage("Upernavik", "72 47.5N", "056 09.4W",
            now.plusDays(13).withTime(10, 45, 0, 0), now.plusDays(14).withTime(9, 30, 0, 0)));

    for (Voyage v : newVessel.getSchedule()) {
        vesselDao.saveEntity(v);
    }
}

From source file:dk.dma.arcticweb.service.AppDataServiceBean.java

License:Apache License

private void createOraTankTestData() {
    logger.info("BEFORE CREATION - ORATANK");

    // Create vessel and user
    Vessel newVessel = new Vessel();
    newVessel.getAisData().setName("ORATANK");
    newVessel.setMmsi(220516000L);/*from   w  ww.  j a v a  2s  .c  o m*/
    newVessel.getAisData().setCallsign("OXPJ2");
    newVessel = vesselDao.saveEntity(newVessel);

    SailorRole sailorRole = new SailorRole();
    sailorRole.setVessel(newVessel);

    vesselDao.saveEntity(sailorRole);

    SecuredUser user = SecurityUtil.createUser("oratank", testPassword, testEmail, null);
    user.setRole(sailorRole);

    vesselDao.saveEntity(user);

    DateTime now = DateTime.now(DateTimeZone.UTC);

    newVessel.addVoyageEntry(new Voyage("Nuuk", "64 10.4N", "051 43.5W", now.plusDays(3).withTime(10, 30, 0, 0),
            now.plusDays(5).withTime(9, 0, 0, 0)));
    newVessel.addVoyageEntry(new Voyage("X", "63 41.81N", "051 29.00W", now.minusDays(4).withTime(9, 30, 0, 0),
            now.minusDays(3).withTime(17, 0, 0, 0)));

    for (Voyage v : newVessel.getSchedule()) {
        vesselDao.saveEntity(v);
    }
}

From source file:dk.dma.arcticweb.service.AppDataServiceBean.java

License:Apache License

private void createCarnivalLegendTestData() {
    logger.info("BEFORE CREATION - CARNIVAL LEGEND");

    // Create vessel and user
    Vessel newVessel = new Vessel();
    newVessel.getAisData().setName("CARNIVAL LEGEND");
    newVessel.setMmsi(354237000L);// ww w . j a va 2  s .  com
    newVessel.getAisData().setCallsign("H3VT");
    newVessel.getAisData().setImoNo(9224726L);
    newVessel.setGrossTonnage(85942);
    newVessel = vesselDao.saveEntity(newVessel);

    SailorRole sailorRole = new SailorRole();
    sailorRole.setVessel(newVessel);

    vesselDao.saveEntity(sailorRole);

    SecuredUser user = SecurityUtil.createUser("carnivalLegend", testPassword, testEmail, null);
    user.setRole(sailorRole);

    vesselDao.saveEntity(user);

    DateTime now = DateTime.now(DateTimeZone.UTC);

    newVessel.addVoyageEntry(new Voyage("Copenhagen", "55 67.61N", "12 56.83E", null,
            now.withTime(12, 57, 0, 0), 12, 300, true));
    newVessel.addVoyageEntry(
            new Voyage("Nuuk", "64 10.4N", "051 43.5W", now.plusDays(10).withTime(7, 10, 0, 0), null));

    for (Voyage v : newVessel.getSchedule()) {
        vesselDao.saveEntity(v);
    }
}

From source file:dk.nsi.haiba.lprimporter.rules.LPRDateTimeRule.java

License:Open Source License

@Override
public LPRRule doProcessing(Statistics statistics) {

    List<Administration> adjustedContacts = new ArrayList<Administration>();

    // sort list after inDate, if more contacts have same in datetime - then they are sorted after out datetime.
    Collections.sort(contacts, new AdministrationInDateComparator());

    for (Administration contact : contacts) {
        // Increment counter for rule #4
        statistics.rule4Counter += 1;/*from  w  ww.j a  v a2s  .c o  m*/

        // AdmissionStartHour for the contact is default set to 0 if not applied in the database, adjust it with the default value from the propertiesfile
        DateTime admissionStart = new DateTime(contact.getIndlaeggelsesDatetime());
        if (admissionStart.getHourOfDay() == 0 && defaultContactInHour != 0) {
            admissionStart = admissionStart.withHourOfDay(defaultContactInHour);
            contact.setIndlaeggelsesDatetime(admissionStart.toDate());
        }

        // AdmissionEndtime must be adjusted, if it was set to 0
        Date udskrivningsDatetime = contact.getUdskrivningsDatetime();
        if (udskrivningsDatetime != null) {
            DateTime admissionEnd = new DateTime(udskrivningsDatetime.getTime());
            if (admissionEnd.getHourOfDay() == 0) {
                // does a procedure exist on the same date, set the procedure hour as admission end hour
                int hourOfDay = 0;
                for (LPRProcedure procedure : contact.getLprProcedures()) {
                    DateTime procedureTime = new DateTime(procedure.getProcedureDatetime());
                    if (admissionEnd.getYear() == procedureTime.getYear()
                            && admissionEnd.getMonthOfYear() == procedureTime.getMonthOfYear()
                            && admissionEnd.getDayOfMonth() == procedureTime.getDayOfMonth()) {
                        // examine all procedures from the same day, and get the latest hour of day.
                        if (procedureTime.getHourOfDay() > hourOfDay) {
                            hourOfDay = procedureTime.getHourOfDay();
                        }
                    }
                }
                admissionEnd = admissionEnd.withHourOfDay(hourOfDay);
            }

            // Then if admissionEnd still is 0, check the in date time is the same day 
            if (admissionEnd.getHourOfDay() == 0) {
                if (admissionEnd.getYear() == admissionStart.getYear()
                        && admissionEnd.getMonthOfYear() == admissionStart.getMonthOfYear()
                        && admissionEnd.getDayOfMonth() == admissionStart.getDayOfMonth()) {
                    // if same date, set end-datetime to in-datetime + defaultvalue
                    admissionEnd = admissionEnd.withHourOfDay(admissionStart.getHourOfDay())
                            .plusHours(defaultContactOuthoursAddedInhours);
                }
            }

            // Then if admissionEnd still is 0, and the enddate is after indate set it to a configured defaultvalue 
            if (admissionEnd.getHourOfDay() == 0) {
                admissionEnd = admissionEnd.withHourOfDay(defaultAdmissionEndHours);
            }

            contact.setUdskrivningsDatetime(admissionEnd.toDate());

            List<LPRProcedure> processedProcedures = new ArrayList<LPRProcedure>();
            for (LPRProcedure procedure : contact.getLprProcedures()) {
                // if procedure time is set to 0 - set it to 12 the same day
                Date procedureDatetime = procedure.getProcedureDatetime();
                if (procedureDatetime != null) {
                    DateTime procedureDate = new DateTime(procedureDatetime.getTime());
                    // if procedureDate is more than 24 hours after admissionEndDate it is an error
                    if (procedureDate.isAfter(admissionEnd.plusHours(24))) {
                        BusinessRuleError be = new BusinessRuleError(contact.getLprReference().getDbId(),
                                contact.getRecordNumber(),
                                resolver.getMessage(
                                        "rule.datetime.proceduredate.is.more.than.24hous.after.enddate"),
                                resolver.getMessage("rule.datetime.name"));
                        businessRuleErrorLog.log(be);
                        // error, procedure is deleted from the contact.
                        continue;
                    }

                    if (procedureDate.getHourOfDay() == 0) {
                        procedureDate = procedureDate.withHourOfDay(defaultProcedureHours);
                        procedure.setProcedureDatetime(procedureDate.toDate());
                    }
                    processedProcedures.add(procedure);
                } else {
                    BusinessRuleError error = new BusinessRuleError(contact.getLprReference().getDbId(),
                            contact.getRecordNumber(),
                            resolver.getMessage("rule.datetime.proceduredate.isempty"),
                            resolver.getMessage("rule.datetime.name"));
                    throw new RuleAbortedException("Rule aborted due to BusinessRuleError", error);
                }
            }
            contact.setLprProcedures(processedProcedures);

        } else {
            // patient is currently at the hospital
            contact.setCurrentPatient(true);

            log.debug("Admission End datetime is null for LPR ref: " + contact.getRecordNumber()
                    + " patient is probably not discharged from hospital yet");

            // if in-date is not more than 30 days older than now - set out-date to today at 24:00
            DateTime now = new DateTime();
            DateTime in = new DateTime(contact.getIndlaeggelsesDatetime());
            if (in.isAfter(now.minusDays(currentPatientDefaultInterval))) {
                DateTime out = in.withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0)
                        .plusHours(currentPatientHoursIfLessThanInterval);
                contact.setUdskrivningsDatetime(out.toDate());
            } else {
                // else set out-date to in-date + 30 days
                DateTime out = in.plusDays(currentPatientDaysIfGreaterThanInterval);
                contact.setUdskrivningsDatetime(out.toDate());
            }
        }

        // Rule #6 in time is after out time
        DateTime in = new DateTime(contact.getIndlaeggelsesDatetime());
        DateTime out = new DateTime(contact.getUdskrivningsDatetime());
        if (in.isAfter(out)) {
            // Increment counter for rule #6
            statistics.rule6Counter += 1;
            // log the error and ignore the contact.
            BusinessRuleError be = new BusinessRuleError(contact.getLprReference().getDbId(),
                    contact.getRecordNumber(), resolver.getMessage("rule.datetime.indate.isafter.outdate"),
                    resolver.getMessage("rule.datetime.name"));
            businessRuleErrorLog.log(be);
            // Increment count for contacts with errors
            statistics.contactErrorCounter += 1;
            lprDao.updateImportTime(contact.getLprReference(), Outcome.FAILURE);
            continue;
        }

        adjustedContacts.add(contact);
    }

    // set this for unittesting purpose
    contacts = adjustedContacts;
    if (contacts.size() == 0) {
        log.debug("all contacts were prone to error, abort the flow");
        return null;
    }

    // setup the next rule in the chain
    removeIdenticalContactsRule.setContacts(contacts);

    return removeIdenticalContactsRule;
}

From source file:dk.nsi.sdm4.ydelse.parser.SSRLineParser.java

License:Open Source License

public Interval parseIntervalFromTwoIdenticalDaysAsSpecifiedBySsr(String[] fields, int treatmentStartTimeField,
        int treatmentEndTimeField) throws ParserException {
    if (fieldIsMissing(fields, treatmentStartTimeField)) {
        throw new ParserException("Treatment start time must be present");
    }//from  w w w .  j a va 2 s .  c o  m

    if (fieldIsMissing(fields, treatmentEndTimeField)) {
        throw new ParserException("Treatment end time must be present");
    }

    DateTime admittedStart;
    try {
        admittedStart = parseDateAsSpecifiedBySsr(fields[treatmentStartTimeField]);
    } catch (ParseException e) {
        throw new ParserException("Treatment start time is malformed: " + fields[treatmentStartTimeField]);
    }

    DateTime admittedEnd;
    try {
        admittedEnd = parseDateAsSpecifiedBySsr(fields[treatmentEndTimeField]);
    } catch (ParseException e) {
        throw new ParserException("Treatment end time is malformed: " + fields[treatmentEndTimeField]);
    }

    if (!admittedStart.equals(admittedEnd)) {
        throw new ParserException("Treatment end time must be the same day as the treatment start time");
    }

    admittedEnd = admittedEnd.plusDays(1);

    return new Interval(admittedStart, admittedEnd);
}

From source file:dk.nsi.sdm4.ydelse.simulation.RandomSSR.java

License:Open Source License

private void setRandomTreatmentTime() {
    DateTime earliestTreatmentStart = new DateTime(2010, 12, 24, 0, 0, 0, 0);
    DateTime latestTreatmentStart = new DateTime(2011, 1, 31, 0, 0, 0, 0);
    DateTime treatet = testDataUtil.randomTime(earliestTreatmentStart, latestTreatmentStart);
    treatet = treatet.withTime(0, 0, 0, 0);

    treatmentInterval = new Interval(treatet, treatet.plusDays(1));
}

From source file:dk.teachus.frontend.components.calendar.CalendarPanel.java

License:Apache License

private int calculateNumberOfCalendarHours() {
    DateTime calStart = getCalendarStartTime().toDateTimeToday();
    DateTime calEnd = getCalendarEndTime().toDateTimeToday();
    if (getCalendarEndTime().getHourOfDay() == 0 && getCalendarEndTime().getMinuteOfHour() == 0) {
        calEnd = calEnd.plusDays(1);
    }/*from  www .j ava 2s .c om*/
    if (calEnd.getMinuteOfHour() > 0) {
        calEnd = calEnd.plusHours(1).withMinuteOfHour(0);
    }
    return new org.joda.time.Period(calStart, calEnd, PeriodType.hours()).getHours();
}

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

License:BSD License

public static int addTimeSteps(int tempRes, int increment, DateTime start) {

    DateTime d;/*from  w w  w .j  a  va  2s.co m*/

    switch (tempRes) {
    case FrameworkUtils.HOUR:
        d = start.plusHours(increment);
        break;
    case FrameworkUtils.DAY:
        d = start.plusDays(increment);
        break;
    case FrameworkUtils.WEEK:
        d = start.plusWeeks(increment);
        break;
    case FrameworkUtils.MONTH:
        d = start.plusMonths(increment);
        break;
    case FrameworkUtils.YEAR:
        d = start.plusYears(increment);
        break;
    default:
        d = start.plusHours(increment);
        break;
    }

    return (int) (d.getMillis() / 1000);

}

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

License:BSD License

public static DateTime addTime(int tempRes, int increment, DateTime start) {

    DateTime d = null;/*  ww  w.j a v  a 2  s .  co m*/

    switch (tempRes) {
    case FrameworkUtils.HOUR:
        d = start.plusHours(increment);
        break;
    case FrameworkUtils.DAY:
        d = start.plusDays(increment);
        break;
    case FrameworkUtils.WEEK:
        d = start.plusWeeks(increment);
        break;
    case FrameworkUtils.MONTH:
        d = start.plusMonths(increment);
        break;
    case FrameworkUtils.YEAR:
        d = start.plusYears(increment);
        break;
    default:
        d = start.plusHours(increment);
        break;
    }

    return d;

}

From source file:edu.wisc.wisccal.caldav2Exchange.impl.caldav.datagenerator.ICal4jTestDataGenerator.java

protected VToDo generateRandomTodo(DateTime baseStartTime) throws ValidationException {
    TimeZone randomTimeZone = getRandomTimeZone();
    DateTime startDateTime = new DateTime(baseStartTime.plusHours(getRandomInt(23)));
    net.fortuna.ical4j.model.DateTime ical4jStartDateTime = new net.fortuna.ical4j.model.DateTime(
            startDateTime.getMillis());//from  www.  jav a  2s.c  o  m
    DtStart dtStart = new DtStart();
    dtStart.setDate(ical4jStartDateTime);
    dtStart.setTimeZone(randomTimeZone);

    DateTime endDateTime = startDateTime.plusDays(getRandomInt(14));
    net.fortuna.ical4j.model.DateTime ical4jEndDateTime = new net.fortuna.ical4j.model.DateTime(
            endDateTime.getMillis());

    //different start/end timezones may cause problems...
    //<errordescription>DUE: 20000102T080000 is before DTSTART: 20000102T090000</errordescription>
    Due due = new Due();
    due.setDate(ical4jEndDateTime);
    due.setTimeZone(randomTimeZone);

    VToDo toDo = new VToDo();
    toDo.getProperties().add(dtStart);
    toDo.getProperties().add(due);
    toDo.getProperties().add(new Summary("Start: " + dtStart.getValue()));
    toDo.getProperties().addAll(getCommonProps());
    toDo.getProperties().add(new Description(toDo.toString()));
    toDo.getAlarms().add(generateAlarm());

    toDo.validate();
    return toDo;
}