I suggest using Joda-Time's LocalDate instead of Java's Date to represent dates without a time zone.
Assuming you only need to traverse the days once, use an Iterator instead of a Stream.
def dayIterator(start: LocalDate, end: LocalDate) = Iterator.iterate(start)(_ plusDays 1) takeWhile (_ isBefore end)
Example usage:
dayIterator(new LocalDate("2013-10-01"), new LocalDate("2014-01-30")).foreach(println)
If you do need a lazily-evaluated list, then Stream is appropriate. I suggest using iterate instead of cons in that case.
def dayStream(start: LocalDate, end: LocalDate) = Stream.iterate(start)(_ plusDays 1) takeWhile (_ isBefore end)
Example usage:
dayIterator(new LocalDate("2013-10-01"), new LocalDate("2014-01-30")).foreach(println)