Groovy惯用法要求上周最后一个工作日(例如星期一)是什么? (或当前一周,一周的第一天)?
还有类似的问题要求当月,即月份的第一个月吗?
答案 0 :(得分:3)
一年前,我写了simple DSL for calculating dates,这可以让你做到:
def mondayInJuly = new DateDSL().with {
first.monday.in.july( 2011 )
}
将mondayInJuly
设置为表示
Mon Jul 04 00:00:00 UTC 2011
我需要更新脚本以允许您使用Groovy 1.8更宽松的解析器
答案 1 :(得分:3)
static Date firstDayInWeek(Date day) {
day.clearTime()
return day - day.calendarDate.dayOfWeek
}
答案 2 :(得分:1)
当你在标签中提到DateTime
时,我建议JodaTime没问题。所以,我们这样做:
def lastMonday =
new DateTime().withDayOfWeek(DateTimeConstants.MONDAY).minusWeeks(1)
def firstThisMoth = new DateTime().withDayOfMonth(1)