Skip to content

Instantly share code, notes, and snippets.

@fumokmm
Forked from xnrghzjh/rand_date.groovy
Created June 9, 2011 09:57
Show Gist options
  • Save fumokmm/1016448 to your computer and use it in GitHub Desktop.
Save fumokmm/1016448 to your computer and use it in GitHub Desktop.
指定範囲内の日付をランダムに取得
@Grab(group='joda-time', module='joda-time', version='*')
import org.joda.time.*
//def rand_date(def fr, def to) { // java...
def rand_date = {fr,to-> // groovy!!
def d = new DateTime(fr)
def range = Days.daysBetween(d, new DateTime(to)).getDays() + 1
d.plusDays((Integer)Math.floor(Math.random() * range)).toString("yyyy-MM-dd")
}
5.times {
println rand_date("1978-09-30","2011-10-10")
}
// 範囲内ランダム
ObjectRange.metaClass.randomeChoice = {
delegate.toList().with {
Collections.shuffle(it); it
}.head()
}
// 変換
def toDate = { Date.parse('yyyy-MM-dd', it) }
def toDateStr = { it.format('yyyy-MM-dd') }
// 日付の範囲
def dateRange = toDate('1978-09-30')..toDate('2011-10-10')
// デモ!
5.times { println toDateStr(dateRange.randomeChoice()) }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment