私は過去12ヶ月間をリストに入れなければならない状況があります。リスト12前の月
例:
現在の月3月で、現在の年が2012だから、私はこのようになりますリストを取得したいです:
月(2011年)、4月(2011).. 2012年1月(2012年)、2月(2012年)、および3月(2012年)。
私は日付とカレンダーを使用してこれを達成しようとしていましたが、私は正しくアルゴリズムを取得できませんでした。
アイデア?ここで
私は過去12ヶ月間をリストに入れなければならない状況があります。リスト12前の月
例:
現在の月3月で、現在の年が2012だから、私はこのようになりますリストを取得したいです:
月(2011年)、4月(2011).. 2012年1月(2012年)、2月(2012年)、および3月(2012年)。
私は日付とカレンダーを使用してこれを達成しようとしていましたが、私は正しくアルゴリズムを取得できませんでした。
アイデア?ここで
はそれを行うには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
メソッドを使用して、要求したとおりに日付をレンダリングしました。出力をより整列させたい場合は、3文字の月を使用する形式として'MMM (yyyy)'
を使用してみてください。あなたはおそらく、あなたが使用したほうが良いかもしれませんので、リストとしてこれらを取得したいと思う:
def months
use(groovy.time.TimeCategory) {
def today = new Date()
months = (0..13).collect { (today - it.months).format('MMMM (yyyy)') }
}
months
と呼ばれる配列に月のデータを格納します。
私は 'def months = []'が好きで、 '13x {months << ...}'を使います。 – doelleri
大変ありがとうございます! – marko