我的情况要求我将过去12个月列入清单。
示例:
当前月份是3月,当前年份是2012年。所以我希望得到一个如下所示的列表:
2011年3月(2011年),4月(2011年)... 12月(2011年),1月(2012年),2月(2012年),3月(2012年)。
我一直在尝试使用日期和日历来完成此操作,但我并没有完全确定算法的正确性。
有什么想法吗?
答案 0 :(得分:5)
这是一种Groovy方法:
use(groovy.time.TimeCategory) {
def today = new Date()
println today
12.times { i ->
println today - (i+1).months
}
}
您可以阅读有关Groovy日期here
的更多信息答案 1 :(得分:3)
这是一个基于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
的数组中。