Example usage for org.apache.commons.lang.time DateUtils getFragmentInDays

List of usage examples for org.apache.commons.lang.time DateUtils getFragmentInDays

Introduction

In this page you can find the example usage for org.apache.commons.lang.time DateUtils getFragmentInDays.

Prototype

public static long getFragmentInDays(Calendar calendar, int fragment) 

Source Link

Document

Returns the number of days within the fragment.

Usage

From source file:net.audumla.climate.MockObserverTest.java

@Test
public void testMock() {
    Date now = new Date();
    now = DateUtils.setMonths(now, 9);/*from   ww w  .  j av a  2 s.c  o m*/
    now = DateUtils.setDays(now, 1);

    ClimateObserver observer = new MockObserverClassDefinition();
    ClimateObserverCollectionHandler aggregateObserver = new ClimateObserverCollectionHandler(
            observer.getSource());
    aggregateObserver.addClimateObserverTop(observer);
    aggregateObserver.addClimateObserverTail(new DerivedClimateObserver(observer.getSource()));
    observer = aggregateObserver.buildClimateObserver();
    ClimateData data = observer.getClimateData(now);
    while (data != null && DateUtils.getFragmentInDays(now, Calendar.MONTH) < 29) {
        //            logger.debug(data.getTime()+" - " +data.getEvapotranspiration());

        now = DateUtils.addDays(now, 1);
        data = observer.getClimateData(now);
    }
}

From source file:net.audumla.climate.MockObserverClassDefinition.java

public MockObserverClassDefinition() {
    Date now = new Date();
    now = DateUtils.setDays(now, 1);//from   w w w. j a  v  a 2 s .  c o  m
    now = DateUtils.setMonths(now, 1);
    now = DateUtils.setYears(now, 2010);
    now = DateUtils.setHours(now, 0);
    now = DateUtils.setMinutes(now, 0);

    source = ClimateDataSourceFactory.getInstance().newInstance();
    source.setName("Mock");
    source.setElevation(20d);
    source.setLatitude(-37.84);
    source.setLongitude(144.98);

    for (int i = 0; i < 28; ++i) {
        WritableClimateData data = ClimateDataFactory.newWritableClimateData(this, getSource());
        dataList.put(DateUtils.getFragmentInDays(now, Calendar.MONTH), data);
        data.setTime(now);

        if (i < 25) {
            data.setDataSource(ClimateDataSourceFactory.decorateInstance(source));
            data.getDataSource().setType(ClimateDataSource.ClimateDataSourceType.DAILY_OBSERVATION);
            data.setAverageWindSpeed(10.0d + (i / 10d));
            data.setMaximumTemperature(10.0d + (i / 10d));
            data.setMinimumTemperature(10.0d - (i / 10d));
            data.setMinimumHumidity(60d - i);
            data.setMaximumHumidity(60d + i);
            data.setRainfall(i / 10d);
            data.setRainfallProbability(data.getRainfall() > 0 ? 100d : 0d);
            data.setSunshineHours(6d + (i / 15d));
            // data.setSolarRadiation(5 + (i / 5d));
            data.setWindSpeedHeight(10.0);
        } else {
            data.setDataSource(ClimateDataSourceFactory.decorateInstance(source));
            data.getDataSource().setType(ClimateDataSource.ClimateDataSourceType.DAILY_FORECAST);
            data.setAverageWindSpeed(10.0 + (i / 10d));
            data.setMaximumTemperature(10.0 + (i / 10d));
            data.setMinimumTemperature(10.0 - (i / 10d));
            data.setRainfall(i / 10d);
            data.setRainfallProbability(data.getRainfall() > 0 ? 80d : 0d);
            data.setSunshineHours(6d + (i / 15d));
            data.setWindSpeedHeight(10.0d);
            data.setMinimumHumidity(60d - i);
            data.setMaximumHumidity(60d + i);
        }

        if (i > 22 && i < 25) {
            now = DateUtils.setHours(now, 0);
            now = DateUtils.setMinutes(now, 0);
            for (int n = 1; n < 48; ++n) {
                WritableClimateObservation obs = ClimateDataFactory.newWritableClimateObservation(this,
                        getSource());
                obs.setDataSource(ClimateDataSourceFactory.decorateInstance(source));
                obs.getDataSource().setType(ClimateDataSource.ClimateDataSourceType.PERIODIC_OBSERVATION);
                obs.setTime(now);
                obs.setWindSpeedHeight(10.0);
                obs.setWindSpeed(data.getAverageWindSpeed() / 48d);
                if (n > 10 && n < 21) {
                    obs.setRainfall(data.getRainfall() * (n / 20d));
                } else {
                    obs.setRainfall(0d);
                }
                obs.setTemperature(data.getMinimumTemperature()
                        + (((data.getMinimumTemperature() - data.getMaximumTemperature()) / 48d) * n));
                obs.setHumidity(data.getMinimumHumidity()
                        + (((data.getMinimumHumidity() - data.getMaximumHumidity()) / 48d) * n));
                obs.setRainfallProbablity(obs.getRainfall() > 0 ? 100d : 0d);
                data.addObservation(obs);
                now = DateUtils.addMinutes(now, 30);
            }
        }

        now = DateUtils.addDays(now, 1);

    }
}

From source file:net.audumla.climate.MockObserverClassDefinition.java

@Override
public ClimateData getClimateData(Date date) {
    return dataList.get(DateUtils.getFragmentInDays(date, Calendar.MONTH));
}