No Programming, No Life

プログラミング関連の話題や雑記

Re:作業予定表から週単位で作業量を積み上げる

お題: Server error
投稿: Server error

考察

日付の範囲から週の範囲を作る部分とか、リストを縦表示するあたりが小慣れてないなぁ…。まだまだ修行が足りない。

以下は日付の範囲から週の範囲を作る部分

/** 範囲を週の範囲に変換 */
def toWeekRange(dispRange) {
   def result = []
   def list = dispRange.grep{ it[Calendar.DAY_OF_WEEK] == Calendar.MONDAY }
   if (dispRange.from != list.first()) {
      result << (dispRange.from..<list.first())
   }
   (0..<[list.size() - 1, 0].max()).each{ idx ->
      result << (list[idx]..<list[idx+1])
   }
   result << (list.last()..dispRange.to)
}

dispRangeは 1/1〜1/31みたいな日付の範囲(Range)。
このメソッドの戻り値は、以下のような月曜始まりの日付の範囲のリストを期待している。


[1/1〜1/4, 1/5〜1/11, 1/12〜1/18, 1/19〜1/25, 1/26〜1/31]