我有一种情况,需要我在清单中找到前12个月。清单12前几个月
例子:
当前的月份是3,而当前年份是2012年。所以我想,看起来像这样的列表:
三月(2011年),四月(2011).. 。2011年12月,2012年1月,2012年2月,2012年3月。
我一直在尝试使用日期和日历来完成此操作,但我没有完全设法使对数正确。
任何想法?
我有一种情况,需要我在清单中找到前12个月。清单12前几个月
例子:
当前的月份是3,而当前年份是2012年。所以我想,看起来像这样的列表:
三月(2011年),四月(2011).. 。2011年12月,2012年1月,2012年2月,2012年3月。
我一直在尝试使用日期和日历来完成此操作,但我没有完全设法使对数正确。
任何想法?
这里是一个Groovy的方式来做到这一点:
use(groovy.time.TimeCategory) {
def today = new Date()
println today
12.times { i ->
println today - (i+1).months
}
}
你可以阅读更多关于Groovy日期here
下面是基于doelleri的建议一个完整的,功能版本:
use(groovy.time.TimeCategory) {
def today = new Date()
13.times { i ->
println((today - i.months).format('MMMM (yyyy)'))
}
}
的我所做的更改:
format
方法来完全按照您的要求渲染日期。如果您希望输出更好地排列,请尝试使用'MMM (yyyy)'
作为格式,该格式使用3个字母的月份。你可能会想要得到这些作为一个列表,这样你就可以使用会更好:
def months
use(groovy.time.TimeCategory) {
def today = new Date()
months = (0..13).collect { (today - it.months).format('MMMM (yyyy)') }
}
在一个月数据存储到一个数组称为months
。
我喜欢'def months = []'然后使用'13.times {months << ...} – doelleri 2012-03-05 08:08:24
非常感谢大家! – marko 2012-03-05 07:36:10