【发布时间】:2011-06-30 17:05:48
【问题描述】:
询问过去最后一个工作日(例如星期一)的 Groovy 惯用方式是什么? (或本周,一周的第一天)?
也有类似的要求当前月份,当月的第一个月?
【问题讨论】:
-
即使它不是 Groovy 特定的 JodaTime 在这里也可能很有帮助。
标签: datetime groovy calendar idioms
询问过去最后一个工作日(例如星期一)的 Groovy 惯用方式是什么? (或本周,一周的第一天)?
也有类似的要求当前月份,当月的第一个月?
【问题讨论】:
标签: datetime groovy calendar idioms
static Date firstDayInWeek(Date day) {
day.clearTime()
return day - day.calendarDate.dayOfWeek
}
【讨论】:
一年前,我写了一个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 的更宽松的解析器
【讨论】:
正如您在标签中提到的DateTime,我建议JodaTime 是可以的。所以,我们这样做:
def lastMonday =
new DateTime().withDayOfWeek(DateTimeConstants.MONDAY).minusWeeks(1)
def firstThisMoth = new DateTime().withDayOfMonth(1)
【讨论】: