Me insertar algunos datos en base de datos Sqlite y comprobar antes de insertar si el registro para este día ya existe. Para comprobar esto que tengo para ver si el número de días son >0. Por ejemplo, la diferencia (en días) entre 2011-8-6 y 2011-8-5 es 1. Cómo hacer esto en Java?

EDITAR:
Como @RayToal mencionó que esto podría ser hecha en base de datos, así que lo hice de esa manera:

SELECT julianday('now') - julianday(Date(Date)) from VIDEO_HISTORY;

Único problema con esto es que me da un número decimal. Por ejemplo: 3.3442346529103816
Ahora tengo que decidir dentro de Java si el número dado es 3 de 4 días.
Que el código es de aplicación que busca en youtube para algunas plazo y escribe datos estadísticos acerca de vistas diarias en la base de datos. El usuario es capaz de horario de trabajo por ejemplo, cada día a 20:00 horas. Pero entonces él podría decidir reprogramar este trabajo en 10:00 de la mañana, para que el programa ha entendido este como la diferencia es de un día. Así que es obvio que tengo que ronda a primer número superior. ¿Hay algún método para esto o tengo que escribir yo mismo?

EDIT2: de Acuerdo a los enlaces proporcionados por @Miguel-Oh, esta es la mejor solución (utilizando JodaTime):

DateTime start = new DateTime(new GregorianCalendar(2011, 8, 4).getTime());
DateTime end = new DateTime(new GregorianCalendar(2011, 8, 8).getTime());

int numberOfDays = Days.daysBetween(start.toDateMidnight(), end.toDateMidnight()).getDays();
System.out.println(numberOfDays);
  • La diferencia entre 2011-8-6 y 2011-8-6 en realidad es 0. Por el camino, ya que los datos aparentemente es almacenada en una base de datos, ¿hay alguna razón por la que no usan SQL para esto?
  • Dado que debe ser el uso de la base de datos para calcular esto, yo diría que esta pregunta es una dup de stackoverflow.com/questions/289680/…. Si por alguna razón usted tiene que hacer el cálculo en Java, lo digo. Entonces mira en Joda-Time. 🙂
  • Lo siento que fue «lapsus calami», he editado este.
  • FYI, el Joda-Time proyecto se encuentra ahora en modo de mantenimiento, con el equipo de asesoramiento de la migración a la java.tiempo clases. Consulte Tutorial de Oracle.
InformationsquelleAutor | 2011-08-05

2 Comentarios

  1. 2

    Si desea que el número de días calendario (un Período de en java.el tiempo de la jerga), a continuación, utilizar (en Java 8):

    import java.time.temporal.ChronoUnit;
    import java.time.LocalDate;
    ChronoUnit.DAYS.between(LocalDate.parse(from.toString()),LocalDate.parse(to.toString())

    (Esto evita una error sutil en Java 8 de java.sql.Fecha de la API)

    Si quieres un Duración en días (físicamente el tiempo transcurrido en 24 horas unidades), a continuación, utilizar Marcelo enfoque.

Dejar respuesta

Please enter your comment!
Please enter your name here