que estoy tratando de hacer el cálculo de días entre 2 fechas de la siguiente manera:(Java/Android) Calcular días entre 2 fechas y presentará los resultados en un formato específico
- Obtener fecha actual
- Obtener pasado o futuro date
- Calcula la diferencia entre no. 1 y no 2
- presente la fecha en el siguiente formato
- Si el resultado está en el pasado (hace 2 días) o en el futuro (en 2 días)
- formato: días, semanas, meses, años
Probé de diferentes maneras pero no pude obtener el resultado que quería antes. Descubrí que Android DatePicker cuadro de diálogo convertir la fecha en entero. No he encontrado una forma de hacer que el widget DatePicket devuelva variables de fecha en lugar de enteros.
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, **int** year,
**int** monthOfYear, **int** dayOfMonth) {
enteredYear = year;
enteredMonth = monthOfYear;
enteredDay = dayOfMonth;
}
};
Me trataron de convertir la fecha del sistema a entero, en base a lo anterior, pero esto no funciona muy bien cuando se trata de calcular los días entre 2 fechas.
private void getSystemDate(){
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
systemYear = mYear;
mMonth = c.get(Calendar.MONTH);
systemMonth = mMonth + 1;
mDay = c.get(Calendar.DAY_OF_MONTH);
systemDay = mDay;
}
ints no van a funcionar para calcular la diferencia e entre días. Necesitarás usar un largo (como dijo AedonEtLIRA). – jahroy
Ese es el problema que estoy teniendo: de forma predeterminada, DatePicker en Android convierte la fecha en un número entero, como muestra el fragmento de código anterior. – striders
No tiene sentido para mí inmediatamente cómo podría usar un int para representar una fecha. A menos que Android java sea diferente, no puede representar una marca de tiempo como int porque el valor int máximo no es lo suficientemente grande. Las marcas de tiempo son muy grandes ... como trillones y trillones. – jahroy