我有一些麻煩與以下任務:
給出的參數如下:
Ruby on Rails的 - 獲取日期 - 定是年,月,weeknumber和日
Year: 2016
Month: 2
Week of Month: 2
Day of week: Monday
結果應該是2016-02-08
有沒有辦法得到這個?
在此先感謝
我有一些麻煩與以下任務:
給出的參數如下:
Ruby on Rails的 - 獲取日期 - 定是年,月,weeknumber和日
Year: 2016
Month: 2
Week of Month: 2
Day of week: Monday
結果應該是2016-02-08
有沒有辦法得到這個?
在此先感謝
您可以使用此代碼。用價值觀的問題是提供month = 2,
week_number = 2
和year = 2016
month = 2
year = 2016
week_number = 2
FIRST_DAY = 1 #first day of every month
day = { monday: 1, tuesday: 2, wednesday: 3, thursday: 4, friday: 5, saturday: 6, sunday: 7}
first_wk_of_month = Date.new(year, month, FIRST_DAY).cweek #=> 05
date_week_num = first_wk_of_month + (week_number - 1) #=> 06
date = Date.commercial(year, date_week_num, day[:monday]).to_s # 2016-02-08
有周在一年內,如果它開始在週日一個月能有低至1天一個星期。考慮到這一點,
first_wk_of_month
找到該月份開始的年份(1到52之間)的週數。
date_week_num
找到日期所在的年份中的實際週數。在這種情況下這是2月的第二個星期就返回6
代表年份
薪火date_week_num
和day
到Date.commercial
的第6周可以讓我們找到date
用了兩天的測試,並工作正常。你可以改變變量名稱。希望這可以解決你的挑戰
做到這一點的方法是
weekday_index = {monday: 1, tuesday: 2, wednesday: 3, thursday: 4, friday: 5, saturday: 6, sunday: 7}
day_in_a_week = 7
year = year_param # 2016
month = month_param # 8
week_number = 2
day_of_month = (week_number * days_in_a_week) - (days_in_a_week - weekday_index[:monday])
Date.new(year, month, day_of_month).to_s
嗨肖恩。感謝您的快速響應。這是正確的,如果月份從星期一開始爲1.如果我將參數設置爲月份編號3(March): 年份:2016 月份:3 本週一周:2 星期幾:星期一 day_of_month = 8但應該是7 –
非常感謝你黑色的謎! 這工作得很好! –
沒問題,樂意幫忙! –