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:org.housecream.solar.SolarAdvancedCalculator.java

License:Open Source License

SolarState findNextEvent(DateTime date, List<SolarTimeEvent> seekingEvents) {
    List<SolarTimeEvent> processingEvents = seekingEvents;
    if (processingEvents == null || seekingEvents.isEmpty()) {
        processingEvents = Arrays.asList(SolarTimeEvent.values());
    }/*from www.  ja va2s .c o m*/
    DateTime nearestDate = null;
    SolarTimeEvent nearestEvent = null;
    DateTime processingDate = date;
    do {
        for (SolarTimeEvent solarTimeEvent : processingEvents) {
            long time = SolarCalculator.getTime(solarTimeEvent, processingDate.getMillis(), latitude,
                    longitude);
            if (date.isAfter(time)) {
                continue; // skip past event 
            }
            DateTime dateTime = new DateTime(time, DateTimeZone.UTC).toDateTime(timezone);
            if (nearestDate == null || dateTime.isBefore(nearestDate)) { // override if closest event
                nearestDate = dateTime;
                nearestEvent = solarTimeEvent;
            }
        }
        processingDate = processingDate.plusDays(1);
    } while (nearestDate == null);

    return new SolarState(latitude, longitude, nearestDate, nearestEvent);
}

From source file:org.hyperic.hq.ui.action.resource.common.monitor.alerts.ListAlertAction.java

License:Open Source License

/**
 * Take the existing DateTime and add 23:59:59.
 * @param begin//from w w  w. jav  a2s.  c  o  m
 * @return
 */
public DateTime addAlmostOneDay(final DateTime begin) {
    return begin.plusDays(1).minusSeconds(1);
}

From source file:org.inheritsource.service.processengine.ActivitiEngineService.java

License:Open Source License

public PagedProcessInstanceSearchResult getProcessInstancesAdvanced(String startedByUserId,
        String involvedUserId, int fromIndex, int pageSize, String sortBy, String sortOrder, String filter,
        Locale locale, String userId, Date startDate, int tolDays) {

    List<HistoricProcessInstance> processes;
    HistoricProcessInstanceQuery historicProcessInstanceQuery = engine.getHistoryService()
            .createHistoricProcessInstanceQuery();

    try {//from  ww  w.j a  v  a2  s  .c  o m
        engine.getIdentityService().setAuthenticatedUserId(userId);

        if (filter.equals("STARTED")) {
            System.out.println("date started");
            historicProcessInstanceQuery.unfinished();

        } else if (filter.equals("FINISHED")) {
            historicProcessInstanceQuery.finished();
        }

        if (startDate != null) {
            DateTime dtOrg = new DateTime(startDate);
            Date dateLast = dtOrg.plusDays(tolDays).toDate();
            Date dateFirst = dtOrg.minusDays(tolDays).toDate();
            System.out.println("dateLast =" + dateLast.toString());
            System.out.println("dateFirst =" + dateFirst.toString());

            historicProcessInstanceQuery.startedAfter(dateFirst).startedBefore(dateLast);
        }

        if (sortBy.equals("started") && sortOrder.equals("desc")) {
            historicProcessInstanceQuery.orderByProcessInstanceStartTime().desc();
        }

        if (sortBy.equals("started") && sortOrder.equals("asc")) {
            historicProcessInstanceQuery.orderByProcessInstanceStartTime().asc();
        }

        if (sortBy.equals("ended") && sortOrder.equals("desc")) {
            historicProcessInstanceQuery.orderByProcessInstanceEndTime().desc();
        }

        if (sortBy.equals("ended") && sortOrder.equals("asc")) {
            historicProcessInstanceQuery.orderByProcessInstanceEndTime().asc();
        }

        if (involvedUserId != null && !involvedUserId.isEmpty()) {
            historicProcessInstanceQuery.involvedUser(involvedUserId);
        }

        if (startedByUserId != null && !startedByUserId.isEmpty()) {
            historicProcessInstanceQuery.startedBy(startedByUserId);
        }

        processes = historicProcessInstanceQuery.excludeSubprocesses(true).list();
        engine.getIdentityService().setAuthenticatedUserId(null);
        return (getHistoricPagedProcessInstanceSearchResult(processes, startedByUserId, fromIndex, pageSize,
                sortBy, sortOrder, locale, userId));
    } catch (Exception e) {
        log.error("Unable to getHistoricPagedProcessInstanceSearchResult with searchForUserId: "
                + " by userId: " + userId + " exeception: " + e);
        engine.getIdentityService().setAuthenticatedUserId(null);
        return (null);
    }

}

From source file:org.isisaddons.app.kitchensink.fixture.date.DateObjectsFixture.java

License:Apache License

@Override
protected void execute(final ExecutionContext ec) {

    defaultParam("numberToCreate", ec, 3);

    defaultParam("name", ec, fake.name().firstName());

    defaultParam("dateTime", ec, clockService.nowAsDateTime().withHourOfDay(10).withMinuteOfHour(0)
            .withSecondOfMinute(0).withMillisOfSecond(0));

    // create// w ww  .j a v a2  s  . c  om
    final DateTime dt2 = getDateTime().plusDays(1).plusHours(1).plusMinutes(5);
    final DateTime dt3 = dt2.plusDays(1).plusHours(1).plusMinutes(5);

    DateTime dt = getDateTime();
    for (int k = 0; k < getNumberToCreate(); k++) {
        final String str = getName() + " #" + k;

        create(str, dt, ec);

        dt = dt.plusDays(1).plusHours(1).plusMinutes(5).plusSeconds(15);
    }
}

From source file:org.itechkenya.leavemanager.domain.LeaveEvent.java

License:Open Source License

private Date getNextLeaveDayDate(Date currentLeaveDayDate) {
    DateTime nextLeaveDayDateTime = new DateTime(currentLeaveDayDate).plusDays(1);
    if (!this.getLeaveType().getAbsolute()) {
        if (DateTimeUtil.isSunday(nextLeaveDayDateTime) && DateTimeUtil.isPublicHoliday(nextLeaveDayDateTime)) {
            return getNextLeaveDayDate(nextLeaveDayDateTime.plusDays(1).toDate());
        } else if (DateTimeUtil.isWeekend(nextLeaveDayDateTime)
                || DateTimeUtil.isPublicHoliday(nextLeaveDayDateTime)) {
            return getNextLeaveDayDate(nextLeaveDayDateTime.toDate());
        }//from  w ww . ja  va  2 s. co m
    }
    return nextLeaveDayDateTime.toDate();
}

From source file:org.jasig.cas.adaptors.ldap.LdapPasswordPolicyEnforcer.java

License:Apache License

/**
 * Determines the expiration date to use based on the settings.
 * @param ldapDateResult// www. j a  va  2 s .c om
 * @return Constructed the {@link #org.joda.time.DateTime DateTime}  object which indicates the expiration date
 */
private DateTime getExpirationDateToUse(final String ldapDateResult) {
    DateTime dateValue = null;
    if (isUsingActiveDirectory()) {
        dateValue = convertDateToActiveDirectoryFormat(ldapDateResult);
    } else {
        dateValue = formatDateByPattern(ldapDateResult);
    }

    DateTime expireDate = dateValue.plusDays(this.validDays);
    log.debug(
            "Retrieved date value {} for date attribute {} and added {} days. The final expiration date is {}",
            dateValue.toString(), this.dateAttribute, this.validDays, expireDate.toString());

    return expireDate;
}

From source file:org.jasig.cas.adaptors.ldap.lppe.LPPEAuthenticationHandler.java

License:Apache License

/**
 * Determines the expiration date to use based on the password policy configuration.
 * Converts the password expiration date based on the
 * {@link PasswordPolicyConfiguration#setDateConverter(LdapDateConverter)} and returns
 * that value is the policy is set to evaluate against a static password expiration date.
 * Otherwise, adds {@link PasswordPolicyConfiguration#getValidPasswordNumberOfDays()} days
 * and returns the expiration date.//from w w  w  .ja va2  s  .  com
 * @return the configured expiration date to use.
 */
private DateTime getExpirationDateToUse(final PasswordPolicyResult result) {
    final DateTime dateValue = result.getPasswordExpirationDateTime();

    if (configuration.getStaticPasswordExpirationDate() == null) {
        final DateTime expireDate = dateValue.plusDays(result.getValidPasswordNumberOfDays());
        logger.debug(
                "Retrieved date value [{}] for date attribute [{}] and added {} valid days. "
                        + "The final expiration date is [{}]",
                dateValue, configuration.getPasswordExpirationDateAttributeName(),
                result.getValidPasswordNumberOfDays(), expireDate);

        return expireDate;
    }
    return dateValue;
}

From source file:org.jasig.portal.portlets.activity.ActivityController.java

License:Apache License

private PortalActivity buildPortalActivity(PortletRequest request, int timeframe) {
    PortletPreferences prefs = request.getPreferences();
    DateTime begin, end;
    final AggregationInterval interval;
    final List<PortalGroupActivity> groupActivities = new ArrayList<PortalGroupActivity>();

    switch (timeframe) {
    case NOW: {/*from   www  .  j a va2 s. c  o  m*/
        end = new DateTime();
        begin = end.minusHours(1);
        interval = AggregationInterval.FIVE_MINUTE;
        break;
    }
    case TODAY: {
        begin = new DateMidnight().toDateTime();
        end = begin.plusDays(1);
        interval = AggregationInterval.DAY;
        break;
    }
    case YESTERDAY: {
        end = new DateMidnight().toDateTime().minusSeconds(1);
        begin = end.minusDays(1);
        interval = AggregationInterval.DAY;
        break;
    }
    default: {
        end = new DateTime();
        begin = end.minusHours(1);
        interval = AggregationInterval.HOUR;
        break;
    }
    }

    String masterGroup = prefs.getValue(PREFERENCE_MASTER_GROUP, DEFAULT_PREFERENCE_MASTER_GROUP);
    List<String> displayGroups = Arrays
            .asList(prefs.getValues(PREFERENCE_DISPLAY_GROUPS, DEFAULT_PREFERENCE_DISPLAY_GROUPS));
    boolean displayOther = Boolean
            .valueOf(prefs.getValue(PREFERENCE_DISPLAY_OTHER, DEFAULT_PREFERENCE_DISPLAY_OTHER));
    int masterTotal = 0;
    int absTotal = 0;
    int subTotal = 0;

    switch (timeframe) {
    case NOW:
        for (AggregatedGroupMapping group : concurrentUserAggregationDao.getAggregatedGroupMappings()) {

            ConcurrentUserAggregationKey key = new ConcurrentUserAggregationKeyImpl(interval, group);
            final List<ConcurrentUserAggregation> aggregations = concurrentUserAggregationDao
                    .getAggregations(begin, end, key);

            // NB:  We only care about the most recent entry (??)
            if (aggregations.size() != 0) {
                final ConcurrentUserAggregation aggregation = aggregations.get(0);
                int groupTotal = aggregation.getConcurrentUsers();
                absTotal += aggregation.getConcurrentUsers();
                if (group.getGroupName().equalsIgnoreCase(masterGroup)) {
                    masterTotal = groupTotal;
                } else {
                    subTotal += groupTotal;
                }

                if (!group.getGroupName().equals(masterGroup)) {
                    if (displayGroups.isEmpty() || displayGroups.contains(group.getGroupName())) {
                        final PortalGroupActivity groupActivity = new PortalGroupActivity(group.getGroupName(),
                                groupTotal);
                        groupActivities.add(groupActivity);
                    }
                }
            }
        }
        break;
    default:
        String uniqueLoginsPref = prefs.getValue(PREFERENCE_UNIQUE_LOGINS, DEFAULT_PREFERENCE_UNIQUE_LOGINS);
        Boolean uniqueLogins = Boolean.valueOf(uniqueLoginsPref);

        for (AggregatedGroupMapping group : loginAggregationDao.getAggregatedGroupMappings()) {

            final LoginAggregationKey key = new LoginAggregationKeyImpl(interval, group);
            final List<LoginAggregation> aggregations = loginAggregationDao.getAggregations(begin, end, key);

            // NB:  We only care about the most recent entry (??)
            if (aggregations.size() != 0) {
                final LoginAggregation aggregation = aggregations.get(0);
                int groupTotal = getAggregationLoginCount(aggregation, uniqueLogins);
                absTotal += groupTotal;
                if (group.getGroupName().equalsIgnoreCase(masterGroup)) {
                    masterTotal = groupTotal;
                } else {
                    subTotal += groupTotal;
                }

                if (!group.getGroupName().equals(masterGroup)) {
                    if (displayGroups.isEmpty() || displayGroups.contains(group.getGroupName())) {
                        PortalGroupActivity groupActivity = new PortalGroupActivity(group.getGroupName(),
                                groupTotal);
                        groupActivities.add(groupActivity);
                    }
                }
            }
        }
        break;
    }

    if (displayOther) {
        int otherTotal = masterTotal - subTotal;
        if (otherTotal > 0) {
            PortalGroupActivity otherGroup = new PortalGroupActivity("Other", otherTotal);
            groupActivities.add(otherGroup);
        }
    }

    Collections.sort(groupActivities);
    Collections.reverse(groupActivities);
    int total = masterTotal > 0 ? masterTotal : absTotal;
    final PortalActivity activity = new PortalActivity(total, groupActivities);
    return activity;

}

From source file:org.jboss.tools.example.html5.rest.AuthenticationService.java

License:Apache License

/**
 * Creates a new member from the values provided. Performs validation, and will return a JAX-RS response with either 200 ok,
 * or with a map of fields, and related errors.
 *//*from w  w  w. j  a va 2  s .  c o m*/
@POST
@Path("/login")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response login(Member member) {

    Response.ResponseBuilder builder = null;

    try {
        validateMember(member); // just verify email and password values are provided, nothing else

        Member dbMember = repository.findByEmail(member.getEmail());

        if (member.getPassword().equals(dbMember.getPassword())) {
            Map<String, Object> responseObj = new HashMap<String, Object>();

            responseObj.put("member", dbMember);

            responseObj.put("token", UUID.randomUUID().toString());

            DateTime expirationDate = new DateTime();
            expirationDate = expirationDate.plusDays(7); //Set token to expire in 7 days
            responseObj.put("token_expiration", dateFormatter.print(expirationDate));

            //TODO Stash the token and it's expirationDate away somewhere (db?)...implement token check in a webfilter?

            builder = Response.status(Response.Status.OK).entity(responseObj);
            //builder = Response.ok();
        } else {
            Map<String, String> responseObj = new HashMap<String, String>();
            responseObj.put("error", "Incorrect email and/or password");
            builder = Response.status(Response.Status.CONFLICT).entity(responseObj);
        }
    } catch (NoResultException e) {
        // user not found
        Map<String, String> responseObj = new HashMap<String, String>();
        responseObj.put("error", "Incorrect email and/or password");
        builder = Response.status(Response.Status.CONFLICT).entity(responseObj);
    } catch (ValidationException e) {
        // Handle the unique constrain violation
        Map<String, String> responseObj = new HashMap<String, String>();
        responseObj.put("email", "Email taken");
        builder = Response.status(Response.Status.CONFLICT).entity(responseObj);
    } catch (Exception e) {
        // Handle generic exceptions
        Map<String, String> responseObj = new HashMap<String, String>();
        responseObj.put("error", e.getMessage());
        builder = Response.status(Response.Status.BAD_REQUEST).entity(responseObj);
    }

    return builder.build();
}

From source file:org.jgrasstools.hortonmachine.modules.hydrogeomorphology.adige.SnowMelting.java

License:Open Source License

@Execute
public void process() throws Exception { // transform the

    if (init2) {//from   w  w  w .j  a  va 2  s . c o m
        outMeasured = new double[pDimMeas];
        init2 = false;
        if (pDoReadMeas) {
            // outSimulated=new double[pDimMeas+1];
            // outMeasured = new double[pDimMeas];
            int dim = pDimMeas;
            double[] portate = new double[dim];
            int cont_portate = 0;
            // System.out.println("SONOENTRATO");
            // lettura portate//
            try {

                String str = new String();
                str = pPathtoMeas;

                FileInputStream fstream = new FileInputStream(str);
                DataInputStream in = new DataInputStream(fstream);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                String strLine;

                double aa = 0;
                while ((strLine = br.readLine()) != null) {
                    aa = Double.parseDouble(strLine);
                    portate[cont_portate] = aa;
                    // System.out.println(aa);
                    cont_portate += 1;

                }
                in.close();
            } catch (Exception e) {
                // System.err.println("Errore: " + e.getMessage());
            }

            outMeasured = portate;
            pDoReadMeas = false;

        }
    }

    /*
     * The models use only one value of the latitude. So I have decided to
     * set it to the center of the raster. Extract the CRS of the
     * GridCoverage and transform the value of a WGS84 latitude.
     */
    CoordinateReferenceSystem sourceCRS = inDem.getCoordinateReferenceSystem2D();

    int numPointToCompute = 0;

    GridGeometry2D inRainGridGeo = null;

    if (doRaster == false) {
        pointsToComputeId2Coordinates = getCoordinate(numPointToCompute, inStations, fStationsid);
        numPointToCompute = pointsToComputeId2Coordinates.size();

    } else if (doRaster == true) {
        if (inRainGrid != null) {
            inRainGridGeo = inRainGrid.getGridGeometry();
        }
        pointsToComputeId2Coordinates = getCoordinate(inRainGridGeo);
        numPointToCompute = pointsToComputeId2Coordinates.size();
    }
    Set<Integer> pointsToInterpolateIdSet = pointsToComputeId2Coordinates.keySet();
    Iterator<Integer> idIterator = pointsToInterpolateIdSet.iterator();
    int j = 0;
    xStation = new double[numPointToCompute];
    yStation = new double[numPointToCompute];
    idStation = new int[numPointToCompute];
    colnumvetVect = new int[numPointToCompute];
    rownumvetVect = new int[numPointToCompute];
    lambdaVect = new double[numPointToCompute];
    CoordinateReferenceSystem targetCRS = DefaultGeographicCRS.WGS84;
    while (idIterator.hasNext()) {
        int id = idIterator.next();
        idStation[j] = id;
        Coordinate coordinate = (Coordinate) pointsToComputeId2Coordinates.get(id);
        xStation[j] = coordinate.x;
        yStation[j] = coordinate.y;

        double srcPts[] = new double[] { (xStation[j]), (yStation[j]) };
        Coordinate source = new Coordinate(srcPts[0], srcPts[1]);

        Point[] so = new Point[] { GeometryUtilities.gf().createPoint(source) };
        CrsUtilities.reproject(sourceCRS, targetCRS, so);
        // the latitude value
        lambdaVect[j] = Math.toRadians(so[0].getY());

        j += 1;

    }
    MathTransform transf = inDem.getGridGeometry().getCRSToGrid2D();
    for (int i = 0; i < xStation.length; i++) {

        DirectPosition point = new DirectPosition2D(sourceCRS, xStation[i], yStation[i]);
        DirectPosition gridPoint = transf.transform(point, null);

        colnumvetVect[i] = (int) gridPoint.getCoordinate()[0];
        rownumvetVect[i] = (int) gridPoint.getCoordinate()[1];
        // System.out.println(idStation[i] + " "
        // + gridPoint.getCoordinate()[0] + " "
        // + gridPoint.getCoordinate()[1]);
    }

    double minimofeb = 0;
    double minimomar = 0;
    double minimoapr = 0;
    double minimomagg = 0;
    double minimogiu = 0;
    double dx = 0;
    DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm").withZone(DateTimeZone.UTC);
    DateTime startcurrentDatetime = formatter.parseDateTime(tStartDate);

    DateTime endcurrentDatetime = formatter.parseDateTime(tEndDate);
    long diff = 0;
    if (doDaily == false) {
        diff = (endcurrentDatetime.getMillis() - startcurrentDatetime.getMillis()) / (1000 * 60 * 60);
    }
    if (doDaily) {
        diff = (endcurrentDatetime.getMillis() - startcurrentDatetime.getMillis()) / (1000 * 60 * 60 * 24);
    }
    DateTime array[] = new DateTime[(int) diff];
    if (doDaily == false) {
        for (int i = 0; i < array.length; i++) {
            array[i] = startcurrentDatetime.plusHours(i);
        }
    }
    if (doDaily) {
        for (int i = 0; i < array.length; i++) {
            array[i] = startcurrentDatetime.plusDays(i);
        }
    }
    if (doOneTime) {
        attribute = CoverageUtilities.getRegionParamsFromGridCoverage(inSkyview);
        dx = attribute.get(CoverageUtilities.XRES);

        double srcPts[] = new double[] { attribute.get(CoverageUtilities.EAST),
                attribute.get(CoverageUtilities.SOUTH) };
        // CoordinateReferenceSystem targetCRS = DefaultGeographicCRS.WGS84;
        Coordinate source = new Coordinate(srcPts[0], srcPts[1]);
        Point[] so = new Point[] { GeometryUtilities.gf().createPoint(source) };
        CrsUtilities.reproject(sourceCRS, targetCRS, so);
        // the latitude value
        lambda = Math.toRadians(so[0].getY());
        CoverageUtilities.getRegionParamsFromGridCoverage(inSkyview);

        if (pMode == 0) {

            RenderedImage insFebTmpRI = inInsFeb.getRenderedImage();
            width = insFebTmpRI.getWidth();
            height = insFebTmpRI.getHeight();
            insFebWR = CoverageUtilities.replaceNovalue(insFebTmpRI, -9999.0);

            RenderedImage insJanTmpRI = inInsJan.getRenderedImage();
            width = insJanTmpRI.getWidth();
            height = insJanTmpRI.getHeight();
            insJanWR = CoverageUtilities.replaceNovalue(insJanTmpRI, -9999.0);

            RenderedImage insMarTmpRI = inInsMar.getRenderedImage();
            insMarWR = CoverageUtilities.replaceNovalue(insMarTmpRI, -9999.0);
            insMarTmpRI = null;

            RenderedImage insAprTmpRI = inInsApr.getRenderedImage();
            insAprWR = CoverageUtilities.replaceNovalue(insAprTmpRI, -9999.0);
            insAprTmpRI = null;

            RenderedImage insMayTmpRI = inInsMay.getRenderedImage();
            insMayWR = CoverageUtilities.replaceNovalue(insMayTmpRI, -9999.0);
            insMayTmpRI = null;

            RenderedImage insJuneTmpRI = inInsJun.getRenderedImage();
            insJunWR = CoverageUtilities.replaceNovalue(insJuneTmpRI, -9999.0);
            insJuneTmpRI = null;
            minimofeb = findminumum(insFebWR, hoursToFeb);
            minimomar = findminumum(insMarWR, hoursToMar);
            minimoapr = findminumum(insAprWR, hoursToApr);
            minimomagg = findminumum(insMayWR, hoursToMay);
            minimogiu = findminumum(insJunWR, hoursToJune);

        }
        RenderedImage drmri = inDem.getRenderedImage();
        demwr = CoverageUtilities.replaceNovalue(drmri, -9999.0);
        drmri = null;
        RenderedImage SkyTmpRI = inSkyview.getRenderedImage();
        skyviewfactorWR = CoverageUtilities.renderedImage2WritableRaster(SkyTmpRI, true);

        inCondIniL = new HashMap<Integer, double[]>();
        inCondIniI = new HashMap<Integer, double[]>();
        outSWEData = new HashMap<Integer, double[]>();
        outFreezingData = new HashMap<Integer, double[]>();

        doOneTime = false;
    }
    folder = null;
    P_listOfFiles = null;
    T_listOfFiles = null;
    if (doRaster == true) {

        folder = new File(pathRainfMaps);
        P_listOfFiles = folder.listFiles();
        for (int i = 0; i < P_listOfFiles.length; i++) {
            System.out.println(P_listOfFiles[i]);
        }
        folder = new File(pathTempMaps);
        T_listOfFiles = folder.listFiles();
        for (int i = 0; i < T_listOfFiles.length; i++) {
            System.out.println(T_listOfFiles[i]);
        }

    }
    OmsTimeSeriesIteratorReader reader_temp = new OmsTimeSeriesIteratorReader();
    OmsTimeSeriesIteratorReader reader_solar = new OmsTimeSeriesIteratorReader();

    OmsTimeSeriesIteratorReader reader_rainf = new OmsTimeSeriesIteratorReader();
    OmsTimeSeriesIteratorWriter writer = new OmsTimeSeriesIteratorWriter();
    OmsTimeSeriesIteratorWriter writer2 = new OmsTimeSeriesIteratorWriter();
    OmsTimeSeriesIteratorWriter writer3 = new OmsTimeSeriesIteratorWriter();
    OmsTimeSeriesIteratorWriter writer4 = new OmsTimeSeriesIteratorWriter();
    OmsTimeSeriesIteratorWriter writer5 = new OmsTimeSeriesIteratorWriter();

    if (doRaster == false) {

        if (!((pathTemp == null))) {
            reader_temp.file = pathTemp;
            reader_temp.idfield = "ID";
            reader_temp.tStart = tStartDate;
            reader_temp.tEnd = tEndDate;
            reader_temp.fileNovalue = "-9999";
            reader_temp.tTimestep = inTimestep;
        }

        if (!((pathToSolarRad == null))) {
            reader_solar.file = pathToSolarRad;
            reader_solar.idfield = "ID";
            reader_solar.tStart = tStartDate;
            reader_solar.tEnd = tEndDate;
            reader_solar.fileNovalue = "-9999";
            reader_solar.tTimestep = inTimestep;
        }

        if (!(pathRainf == null)) {

            reader_rainf.file = pathRainf;
            reader_rainf.idfield = "ID";
            reader_rainf.tStart = tStartDate;
            reader_rainf.tEnd = tEndDate;
            reader_rainf.fileNovalue = "-9999";
            reader_rainf.tTimestep = inTimestep;

        }

        if (pathToMelting != null) {
            writer.file = pathToMelting;
            writer.tStart = tStartDate;
            writer.tTimestep = inTimestep;
        }
        if (pathToSwe != null) {
            writer2.file = pathToSwe;
            writer2.tStart = tStartDate;
            writer2.tTimestep = inTimestep;

        }
        if (pathToFreezing != null) {
            writer3.file = pathToFreezing;
            writer3.tStart = tStartDate;
            writer3.tTimestep = inTimestep;

        }
        if (pathToSolidWater != null) {
            writer4.file = pathToSolidWater;
            writer4.tStart = tStartDate;
            writer4.tTimestep = inTimestep;
        }
        if (pathToLiquidWater != null) {
            writer5.file = pathToLiquidWater;
            writer5.tStart = tStartDate;
            writer5.tTimestep = inTimestep;

        }

        if (numSitesWhereCalibrate != 1) {
            outSWEVECTOR = new double[array.length * numSitesWhereCalibrate];
            outMELTINGVECTOR = new double[array.length * numSitesWhereCalibrate];
        } else {
            outSWEVECTOR = new double[array.length];
            outMELTINGVECTOR = new double[array.length];

        }
        conta = 0;
    }

    outMELTINGVECTOR_forMaps = new double[numPointToCompute];
    outSWEVECTOR_forMaps = new double[numPointToCompute];

    for (int i = 0; i < array.length; i++) {
        outSWE = new HashMap<Integer, double[]>();
        outMeltingData = new HashMap<Integer, double[]>();
        // System.out.println(" data=" + array[i]);
        DateTime currentime = array[i];
        if (doRaster == false) {
            if (!(pathTemp == null)) {
                reader_temp.nextRecord();
                temp_values = reader_temp.outData;
            }

            if (!(pathRainf == null)) {
                reader_rainf.nextRecord();
                rain_values = reader_rainf.outData;
            }
            if (!(pathToSolarRad == null)) {
                reader_solar.nextRecord();
                solar_values = reader_solar.outData;
            }
        }
        int month = currentime.getMonthOfYear();
        switch (month) {

        case 1:
            calcMelting(insJanWR, demwr, dx, currentime, hoursToJan, minimofeb, i);
            break;
        case 10:
            calcMelting(insFebWR, demwr, dx, currentime, hoursToFeb, minimofeb, i);
            break;
        case 11:
            calcMelting(insFebWR, demwr, dx, currentime, hoursToFeb, minimofeb, i);
            break;
        case 12:
            calcMelting(insFebWR, demwr, dx, currentime, hoursToFeb, minimofeb, i);
            break;
        case 2:
            calcMelting(insFebWR, demwr, dx, currentime, hoursToFeb, minimofeb, i);
            break;
        case 3:
            calcMelting(insMarWR, demwr, dx, currentime, hoursToMar, minimomar, i);
            break;
        case 4:
            calcMelting(insAprWR, demwr, dx, currentime, hoursToApr, minimoapr, i);
            break;
        case 5:
            calcMelting(insMayWR, demwr, dx, currentime, hoursToMay, minimomagg, i);
            break;
        case 6:
            calcMelting(insJunWR, demwr, dx, currentime, hoursToJune, minimogiu, i);
            break;
        case 7:
            calcMelting(insJunWR, demwr, dx, currentime, hoursToJune, minimogiu, i);
            break;
        case 8:
            calcMelting(insJunWR, demwr, dx, currentime, hoursToJune, minimogiu, i);
            break;
        case 9:
            calcMelting(insJunWR, demwr, dx, currentime, hoursToJune, minimogiu, i);
            break;
        default:
            break;
        }

        //
        // calcInsolation(lambda, pitWR, gradientWR, insolationWR,
        // staoWR,
        // diffuseWR, dx, currentime);
        if (doRaster == false) {
            if (pathToMelting != null) {
                writer.inData = outMeltingData;

                writer.writeNextLine();
            }
            if (pathToSolidWater != null) {
                writer4.inData = inCondIniI;

                writer4.writeNextLine();
            }
            if (pathToLiquidWater != null) {
                writer5.inData = inCondIniL;

                writer5.writeNextLine();
            }
            if (pathToSwe != null) {
                writer2.inData = outSWEData;
                writer2.writeNextLine();
            }
            if (pathToFreezing != null) {
                writer3.inData = outFreezingData;
                writer3.writeNextLine();
            }
        } else if (doRaster) {

            storeResult(outSWEVECTOR_forMaps, outMELTINGVECTOR_forMaps, pointsToComputeId2Coordinates);
            // }

        }
        // pm.worked(i - startDay);
    }
    if (pathToMelting != null) {
        writer.close();
    }
    if (pathToSwe != null) {
        writer2.close();
    }
    if (pathToFreezing != null) {
        writer3.close();
    }
    if (pathToSolidWater != null) {
        writer4.close();
    }
    if (pathToLiquidWater != null) {
        writer5.close();
    }
    outSwevector = outSWEVECTOR;

}