Example usage for org.joda.time Period Period

List of usage examples for org.joda.time Period Period

Introduction

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

Prototype

public Period(Object period, PeriodType type, Chronology chrono) 

Source Link

Document

Creates a period by converting or copying from another object.

Usage

From source file:com.squid.kraken.v4.core.analysis.engine.processor.AnalysisCompute.java

License:Open Source License

private Period computeOffset(IntervalleObject presentInterval, IntervalleObject pastInterval,
        AxisValues joinAxis) throws ScopeException {
    // it is better to compare on the lower bound because alignment on the
    // end of month is not accurate
    Object present = presentInterval.getLowerBound();
    Object past = pastInterval.getLowerBound();
    //// w  w w  . j a v  a 2s. co m

    IDomain image = joinAxis.getAxis().getDefinition().getImageDomain();
    PeriodType type = computePeriodType(image);
    //
    if (present instanceof Date && past instanceof Date) {

        Period presentPeriod = new Period(new LocalDate(((Date) presentInterval.getLowerBound()).getTime()),
                new LocalDate(((Date) presentInterval.getUpperBound()).getTime()).plusDays(1), type);

        Period pastPeriod = new Period(new LocalDate(((Date) pastInterval.getLowerBound()).getTime()),
                new LocalDate(((Date) pastInterval.getUpperBound()).getTime()).plusDays(1), type);

        Date pastDate = (Date) past;
        DateTime dt = new DateTime(pastDate);
        if (image.isInstanceOf(IDomain.YEARLY)) {
            if (presentPeriod.getYears() > pastPeriod.getYears()) {
                // e.g. presentPeriod of 365 days ->
                // presentPeriod.getYears=1 && past year of 366 days ->
                // pastPeriod.getYears=0
                DateTime newDT = new DateTime(dt.getYear(), 1, 1, 0, 0);
                pastDate = newDT.toDate();
            } else {
                if (dt.getDayOfYear() != 1) {
                    // e.g present period of 366 days -> past date at dec 31
                    DateTime newDT = new DateTime(dt.getYear() + 1, 1, 1, 0, 0);
                    pastDate = newDT.toDate();
                }
            }
        } else if (image.isInstanceOf(IDomain.QUATERLY) || image.isInstanceOf(IDomain.MONTHLY)) {

            if (presentPeriod.getMonths() > pastPeriod.getMonths()) {
                // e.g present period of 28 days(February) ->
                // pastPeriod.getMonths() = 0 (January has 31 days)
                DateTime newDT = new DateTime(dt.getYear(), dt.getMonthOfYear(), 1, 0, 0);
                pastDate = newDT.toDate();
            } else {
                if (dt.getDayOfMonth() != 1) {
                    // e.g. present period of 31 day(March) pastDate = Feb 6
                    if (dt.getMonthOfYear() == 12) {
                        DateTime newDT = new DateTime(dt.getYear() + 1, 1, 1, 0, 0);
                        pastDate = newDT.toDate();
                    } else {
                        DateTime newDT = new DateTime(dt.getYear(), dt.getMonthOfYear() + 1, 1, 0, 0);
                        pastDate = newDT.toDate();
                    }
                }
            }
        } else {
            // daily, keep Date as it is
        }
        return new Period(new LocalDate((pastDate).getTime()), new LocalDate(((Date) present).getTime()), type);

    } else {
        return null;
    }
}

From source file:com.the.todo.task.ReminderTask.java

License:MIT License

public ReminderTask(ToDo todo, LocalDateTime currentDateTime) {
    Period p = new Period(currentDateTime, todo.getEndDate(), PeriodType.seconds());

    timer = new Timer();
    timer.schedule(new ToDoReminder(todo), p.getValue(0) * 1000);
}

From source file:com.webarch.common.datetime.DateTimeUtils.java

License:Apache License

/**
 * ?// ww w. j av  a 2 s  .c om
 *
 * @return
 */
public static Period getTimePeriod(Date startTime, Date endTime, PeriodType periodType) {
    if (periodType == null)
        periodType = PeriodType.minutes();
    DateTime dateTimeStart = new DateTime(startTime);
    DateTime dateTimeEnd = new DateTime(endTime);
    Period p = new Period(dateTimeStart, dateTimeEnd, periodType);
    return p;
}

From source file:dao.ApplicationDAO.java

public static ArrayList<Application> filterByAge(int ageFrom, int ageTo, ArrayList<Application> filteredList) {
    int iAge = 0;
    ArrayList<Application> newAppList = new ArrayList<Application>();

    for (Application app : filteredList) {

        //get int dob from database
        String dateOfBirth = app.getDob();
        int dobDay = Integer.parseInt(dateOfBirth.substring(0, 2));
        int dobMonth = Integer.parseInt(dateOfBirth.substring(3, 5));
        int dobYear = Integer.parseInt(dateOfBirth.substring(6, 10));
        LocalDate dob = new LocalDate(dobYear, dobMonth, dobDay);
        LocalDate date = new LocalDate();
        Period period = new Period(dob, date, PeriodType.yearMonthDay());
        iAge = period.getYears();//from   ww w  .ja  va2s. c  om

        if ((iAge >= ageFrom) && (iAge <= ageTo)) {
            newAppList.add(app);
        }
    }

    return newAppList;
}

From source file:fm.last.commons.lang.time.DateRange.java

License:Apache License

/**
 * @return The number of days (inclusive) between the first and last dates in the range
 *//*w  ww.j  av  a  2s. com*/
public int numberOfDays() {
    Period period = new Period(firstDate, lastDate, PeriodType.days());
    return period.getDays() + 1; // Add one to be inclusive of lastDate as well
}

From source file:GroupProject.Operation.java

/**
 * Calculates age according to the date of birth supplied as a parameter.
 *
 * @param age Date of Birth/*  w  w  w  .  j  av a2  s . co m*/
 * @return age in years.
 */

public int calculateAge(String age) {

    final org.joda.time.format.DateTimeFormatter dtf = DateTimeFormat.forPattern("dd/MM/yyyy");
    final LocalDate birthdate = dtf.parseLocalDate(age);
    LocalDate now = new LocalDate(); //Today's date
    Period period = new Period(birthdate, now, PeriodType.yearMonthDay());
    int ageInYears = period.getYears();
    return ageInYears;
}

From source file:influent.server.utilities.DateTimeParser.java

License:MIT License

/**
 * @see http://joda-time.sourceforge.net/apidocs/org/joda/time/Period.html#normalizedStandard()
 *//*from  w ww.  j av a  2  s  .co  m*/
public static Period normalize(Period period) {
    long millis = period.getMillis();
    millis += period.getSeconds() * DateTimeConstants.MILLIS_PER_SECOND;
    millis += period.getMinutes() * DateTimeConstants.MILLIS_PER_MINUTE;
    millis += period.getHours() * DateTimeConstants.MILLIS_PER_HOUR;
    millis += period.getDays() * DateTimeConstants.MILLIS_PER_DAY;
    millis += period.getWeeks() * DateTimeConstants.MILLIS_PER_WEEK;

    Period result = new Period(millis, DateTimeUtils.getPeriodType(PeriodType.standard()),
            ISOChronology.getInstanceUTC());
    int years = period.getYears();
    int months = period.getMonths();

    if (years != 0 || months != 0) {
        years = FieldUtils.safeAdd(years, months / 12);
        months = months % 12;
        if (years != 0) {
            result = result.withYears(years);
        }
        if (months != 0) {
            result = result.withMonths(months);
        }
    }

    return result;
}

From source file:info.culebrasgis.calculadoradefechas.DiasDesdeActivity.java

License:Open Source License

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dias_desde);

    fechaUsuario = (Button) findViewById(R.id.buttonFechaUsuario);
    fechaUsuario.setOnClickListener(new View.OnClickListener() {
        @Override/* w w  w  .  j  av  a 2  s  . com*/
        public void onClick(View v) {
            DialogFragment newFragment = new DatePickerFragment();
            newFragment.show(getSupportFragmentManager(), "datePicker");
        }
    });

    resultado = (TextView) findViewById(R.id.textViewResultado);

    volver = (Button) findViewById(R.id.buttonVolver);
    volver.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });

    reiniciar = (Button) findViewById(R.id.buttonReiniciar);
    reiniciar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            resultado.setText(R.string.resultado);
            fechaUsuario.setText(R.string.fecha);
        }
    });

    calcular = (Button) findViewById(R.id.buttonCalcular);
    calcular.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                int dia, mes, anno;
                dia = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(0, 2));
                mes = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(3, 5));
                anno = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(6, 10));

                DateTime hoy = new DateTime();
                DateTime fecha = new DateTime(anno, mes, dia, 0, 0);

                if (fecha.isAfter(hoy)) { // si el usuario mete una fecha posterior al da actual
                    resultado.setText(R.string.fecha_anterior);
                } else {
                    Period periodo = new Period(fecha, hoy, PeriodType.days());
                    resultado.setText(
                            String.format(getString(R.string.resultado_dias_desde), periodo.getDays()));
                }
            } catch (Exception e) {
                resultado.setText(R.string.fecha_incorrecta);
            }
        }
    });

}

From source file:info.culebrasgis.calculadoradefechas.DiasHastaActivity.java

License:Open Source License

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dias_hasta);

    fechaUsuario = (Button) findViewById(R.id.buttonFechaUsuario);
    fechaUsuario.setOnClickListener(new View.OnClickListener() {
        @Override/* ww w . ja v  a 2s  .c  o m*/
        public void onClick(View v) {
            DialogFragment newFragment = new DatePickerFragment();
            newFragment.show(getSupportFragmentManager(), "datePicker");
        }
    });

    resultado = (TextView) findViewById(R.id.textViewResultado);

    volver = (Button) findViewById(R.id.buttonVolver);
    volver.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });

    reiniciar = (Button) findViewById(R.id.buttonReiniciar);
    reiniciar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            resultado.setText(R.string.resultado);
            fechaUsuario.setText(R.string.fecha);
        }
    });

    calcular = (Button) findViewById(R.id.buttonCalcular);
    calcular.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                int dia, mes, anno;
                dia = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(0, 2));
                mes = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(3, 5));
                anno = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(6, 10));

                DateTime hoy = new DateTime();
                DateTime fecha = new DateTime(anno, mes, dia, 0, 0);

                if (fecha.isBefore(hoy)) { // si el usuario mete una fecha posterior al da actual
                    resultado.setText(R.string.fecha_posterior);
                } else {
                    Period periodo = new Period(hoy, fecha, PeriodType.days());
                    resultado.setText(
                            String.format(getString(R.string.resultado_dias_hasta), (periodo.getDays() + 1)));
                }
            } catch (Exception e) {
                resultado.setText(R.string.fecha_incorrecta);
            }
        }
    });

}

From source file:info.culebrasgis.calculadoradefechas.EdadActivity.java

License:Open Source License

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edad);

    fechaUsuario = (Button) findViewById(R.id.buttonFechaUsuario);
    fechaUsuario.setOnClickListener(new View.OnClickListener() {
        @Override/*from ww w .  ja v  a2s.co m*/
        public void onClick(View v) {
            DialogFragment newFragment = new DatePickerFragment();
            newFragment.show(getSupportFragmentManager(), "datePicker");
        }
    });

    resultado = (TextView) findViewById(R.id.textViewResultado);

    volver = (Button) findViewById(R.id.buttonVolver);
    volver.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });

    reiniciar = (Button) findViewById(R.id.buttonReiniciar);
    reiniciar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            resultado.setText(R.string.resultado);
            fechaUsuario.setText(R.string.fecha);
        }
    });

    calcular = (Button) findViewById(R.id.buttonCalcular);
    calcular.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                int dia, mes, anno;
                dia = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(0, 2));
                mes = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(3, 5));
                anno = Integer.parseInt(String.valueOf(fechaUsuario.getText()).substring(6, 10));

                DateTime hoy = new DateTime();
                DateTime fecha = new DateTime(anno, mes, dia, 0, 0);

                if (fecha.isAfter(hoy)) { // si el usuario mete una fecha posterior al da actual
                    resultado.setText(R.string.nacer_futuro);
                } else {
                    Period periodo = new Period(fecha, hoy, PeriodType.yearMonthDay());
                    resultado.setText(String.format(getString(R.string.resultado_edad), periodo.getYears(),
                            periodo.getMonths(), periodo.getDays()));
                }
            } catch (Exception e) {
                resultado.setText(R.string.fecha_incorrecta);
            }
        }
    });

}