我有一種情況,需要我在清單中找到前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