Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


(Java / Android) Calcular días entre 2 fechas y presentar el resultado en un formato específico

Estoy tratando de hacer calcular los días entre 2 fechas como sigue:

  1. Obtener la fecha actual
  2. Obtener una fecha anterior o una fecha futura
  3. Calcular la diferencia entre no. 1 y no. 2
  4. Presentar las fechas en el siguiente formato
    • Si el resultado es en el pasado (hace 2 días) o en el futuro (en 2 días)
    • Formato: días, semanas, meses, años

Traté de diferentes maneras pero no pude obtener el resultado que quería arriba. Descubrí que el cuadro de diálogo de Android DatePicker convierte la fecha en entero. No he encontrado una manera de hacer que el widget DatePicket devuelva variables de fecha en vez de enteros.

  • IsolatedContext vs AndroidTestCase.getContext ()
  • Navegación de Android Error de cajón utilizando la muestra
  • ¿Cómo referenciar los atributos de estilo de un drawable?
  • ¿Cómo puedo agregar sombra a ImageButton?
  • ¿Cómo puedo asegurarme de que una ventana siempre esté mostrada encima del teclado virtual?
  • Recuperar la ruta absoluta cuando seleccione la imagen de la galería kitkat android
  • private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, **int** year, **int** monthOfYear, **int** dayOfMonth) { enteredYear = year; enteredMonth = monthOfYear; enteredDay = dayOfMonth; } }; 

    He intentado convertir la fecha del sistema a entero, basado en lo anterior, pero esto realmente no funciona 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; } 

  • Mostrar y ocultar la barra de acción mientras se desplaza el contenido del buscapersonas
  • Cambiar el color de texto de ListView
  • La consola de Eclipse muestra: 'Error al pulsar la selección: sistema de archivos de sólo lectura' cuando intento empujar un archivo
  • Emulador de Android TV con API de Google
  • Integración del tiempo de ejecución de Skype en la aplicación Android existente
  • Reanudar la reproducción de VideoView desde onResume
  • 3 Solutions collect form web for “(Java / Android) Calcular días entre 2 fechas y presentar el resultado en un formato específico”

     /** * Returns a string that describes the number of days * between dateOne and dateTwo. * */ public String getDateDiffString(Date dateOne, Date dateTwo) { long timeOne = dateOne.getTime(); long timeTwo = dateTwo.getTime(); long oneDay = 1000 * 60 * 60 * 24; long delta = (timeTwo - timeOne) / oneDay; if (delta > 0) { return "dateTwo is " + delta + " days after dateOne"; } else { delta *= -1; return "dateTwo is " + delta + " days before dateOne"; } } 

    Edit: Acabo de ver la misma pregunta en otro hilo: cómo calcular la diferencia entre dos fechas con java

    Edit2: Para obtener Año / Mes / Semana, haga algo como esto:

     int year = delta / 365; int rest = delta % 365; int month = rest / 30; rest = rest % 30; int weeks = rest / 7; int days = rest % 7; 
     long delta = Date2.getTime() - Date1.getTime(); new Date(delta); 

    A partir de aquí, usted acaba de elegir su formato. Tal vez utilizar un formateador de fecha? En cuanto a la determinación de las cosas del futuro y todo eso, usted podría ver si el delta es positivo o negativo. Un delta negativo indicará un evento pasado.

    Bueno, java / android API tiene todas las respuestas para usted:

      Calendar myBirthday=Calendar.getInstance(); myBirthday.set(1980, Calendar.MARCH, 22); Calendar now = Calendar.getInstance(); long diffMillis= Math.abs(now.getTimeInMillis()-myBirthday.getTimeInMillis()); long differenceInDays = TimeUnit.DAYS.convert(diffMillis, TimeUnit.MILLISECONDS); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.