Estoy tratando de implementar sin éxito un iterador de fecha con hora Joda.
Necesito algo que me permita repetir todos los días de startDate a endDate
¿Tiene alguna idea de cómo hacerlo?Java Joda Time - Implementar un iterador de intervalo de fechas
Respuesta
Aquí hay algo para empezar. Es posible que desee pensar en si usted quiere que sea inclusivo o exclusivo al final, etc.
import org.joda.time.*;
import java.util.*;
class LocalDateRange implements Iterable<LocalDate>
{
private final LocalDate start;
private final LocalDate end;
public LocalDateRange(LocalDate start,
LocalDate end)
{
this.start = start;
this.end = end;
}
public Iterator<LocalDate> iterator()
{
return new LocalDateRangeIterator(start, end);
}
private static class LocalDateRangeIterator implements Iterator<LocalDate>
{
private LocalDate current;
private final LocalDate end;
private LocalDateRangeIterator(LocalDate start,
LocalDate end)
{
this.current = start;
this.end = end;
}
public boolean hasNext()
{
return current != null;
}
public LocalDate next()
{
if (current == null)
{
throw new NoSuchElementException();
}
LocalDate ret = current;
current = current.plusDays(1);
if (current.compareTo(end) > 0)
{
current = null;
}
return ret;
}
public void remove()
{
throw new UnsupportedOperationException();
}
}
}
class Test
{
public static void main(String args[])
{
LocalDate start = new LocalDate(2009, 7, 20);
LocalDate end = new LocalDate(2009, 8, 3);
for (LocalDate date : new LocalDateRange(start, end))
{
System.out.println(date);
}
}
}
Es un tiempo desde que he escrito un iterador en Java, por lo que la esperanza es correcto. Creo que es más o menos bien ...
Oh por bloques C# iterador, eso es todo lo que puedo decir ...
Gracias, esto acaba de hacer mi vida al menos un 900% más fácil. –
Estaba buscando en Google si Joda tiene algo para representar un "rango de fechas" ... Aparentemente no, ya que usted propone escribir su propio LocalDateRange. – Jonik
@Jonik Joda ofrece la interfaz Interval y su variada implementación. Sin embargo, no pude encontrar una implementación 'Iterable': tal vez más compleja ... – Stephan
- 1. Intervalo de hora local en Joda-time
- 2. Número de días entre dos fechas en Joda-Time
- 3. Analizando Joda-Time Partials
- 4. Calcular diferencia de mes en Joda Time
- 5. JAX-WS y Joda-Time?
- 6. Comprobar si un intervalo de fechas está dentro de un intervalo de fechas
- 7. Hibernate 4 y joda-time
- 8. Java Joda Time - descargar e instalar - paso a paso
- 9. Cuenta atrás para Navidad con Joda-Time
- 10. Intervalo de fechas en PostgreSQL
- 11. Joda-Time: ¿cuál es la diferencia entre Período, Intervalo y Duración?
- 12. PHP intervalo de fechas Comprobar
- 13. Convertir joda LocalTime a sql Time
- 14. Cómo importar FromString para joda-time?
- 15. Cómo utilizar Joda-Time con java.sql.Timestamp
- 16. ¿Cómo convertir una fecha java a un instalador legible para Joda Time dentro de un JSP?
- 17. Joda Time - diferente entre las zonas horarias
- 18. ¿Cómo obtener nombres cortos de meses en Joda Time?
- 19. Comparando cadenas de fechas usando la biblioteca de tiempo joda
- 20. Debo utilizar threeten en lugar de joda-time
- 21. Ayudante de fecha y hora para PHP (como Joda-Time en Java)
- 22. Consulta de PostgreSQL con un intervalo de fechas más pequeño (conjunto de resultados) más lento que uno con un intervalo de fechas más grande (resultado)
- 23. ORACLE SQL Intervalos de intervalo de fechas
- 24. Joda time hace la conversión de tiempo 'demasiado pronto'
- 25. Tiene problemas para obtener Joda-time para ejecutar en Android.
- 26. ¿Cómo puedo expresar los intervalos parciales usando Joda-Time?
- 27. Pregunta de intervalo de fechas Mongoid
- 28. minutos Joda horario en una duración o intervalo
- 29. MySQL timestamp seleccione el intervalo de fechas
- 30. Intervalo de fechas en PL/SQL (Oracle)
¿Esta ayuda en absoluto? http://stackoverflow.com/questions/847520/java-date-iterator-factory-with-rules-specifying-how-to-calculate-the-intervals – Davis
Si desea días, desea ver la clase LocalDate (establecer uno como fecha de inicio) y hacer un día más para cada uno. Esto evitará los problemas de zona horaria inherentes en el instante. – Yishai