繁体   English   中英

如何使用Scala生成器生成带范围的日期?

[英]How can I use scala generators to generate date with range?

我正在使用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

如果可以生成完整的日期范围,则应该可以使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM