我正在使用scalacheck,因此我将能够使用Generators。
所以在我的生成器类中,我有类似的东西:
invType <- Gen.oneOf(Seq("Communication", "Restaurants", "Parking"))
invoiceNumber <- Gen.choose(1, 10000)
但现在我要生成:
invoiceDate = "1/1/2014" //todo: generate random date between 2013 - today
我该怎么做? TNX
答案 0 :(得分:4)
如果您可以生成完整的日期范围,那么您应该可以使用Gen.oneOf
随机选择该范围内的日期。您可以使用以下代码生成范围:
val sf = new SimpleDateFormat("M/d/yyyy")
val now = new Date
val cal = Calendar.getInstance()
cal.set(2013, 0, 1) //Jan 1 2013
val dates =
Iterator.
continually{
val d = cal.getTime
cal.add(Calendar.DAY_OF_YEAR, 1)
sf.format(d)
}.
takeWhile(_ => cal.getTimeInMillis() <= now.getTime).
toSeq
然后从那里你应该能够做到:
invDate <- Gen.oneOf(dates)