0

週を埋める翌月と前月の日が数日余分にあるカレンダーの日付の配列を作成しようとしています。

これが配列を取得するための私の現在の方法です

def calendar
  selected_month = Date.civil((Time.zone.now.year).to_i, (Time.zone.now.month).to_i)

  start_date = selected_month.beginning_of_month
  start_date.sunday? ? start_date : start_date.beginning_of_week.advance(:days => -1)

  end_date = selected_month.end_of_month
  end_date.sunday? ? end_date.advance(:days => 1).end_of_week : end_date

  #only puts 1-30/31 and does not include the extra off set of days from start and end. :( 
  date_range = (start_date..end_date).to_a   
end

問題は、開始日と終了日がそれを超えていても、鳴った音は1から始まり、月末まで続くことです。

私はアレイを取得するこの方法と結婚していないので、おそらくあなたはより良い全体的なアイデアを持っていますか?

4

1 に答える 1

1

start_dateとend_dateの値を再割り当てするのを忘れました。

  start_date = selected_month.beginning_of_month
  start_date = start_date.sunday? ? start_date : start_date.beginning_of_week.advance(:days => -1)

  end_date = selected_month.end_of_month
  end_date = end_date.sunday? ? end_date.advance(:days => 1).end_of_week : end_date
于 2012-06-01T00:25:30.247 に答える