12
我試圖用Joda時間實現沒有成功的日期迭代器。
我需要的東西,允許我迭代所有的日子形式startDate結束日期
你有什麼想法如何做到這一點?Java Joda時間 - 實現日期範圍迭代器
我試圖用Joda時間實現沒有成功的日期迭代器。
我需要的東西,允許我迭代所有的日子形式startDate結束日期
你有什麼想法如何做到這一點?Java Joda時間 - 實現日期範圍迭代器
這裏有一些讓你開始。您可能要想想你是否希望它是包容性或獨佔末等
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);
}
}
}
這是一段時間,因爲我用Java編寫的迭代器,所以我希望它是正確的。我認爲這是非常好的......
哦對C#迭代器塊,這就是我能說...
這個幫助呢? http://stackoverflow.com/questions/847520/java-date-iterator-factory-with-rules-specifying-how-to-calculate-the-intervals – Davis 2009-07-23 22:48:36
如果你想要天,你想看看LocalDate類(設置一個作爲你的開始日期),併爲每個下一個做一個加上天。這將避免即時固有的時區問題。 – Yishai 2009-07-23 23:37:00