【Rails】business_timegem의 공휴일 설정 방법 및 영업일 계산

5432 단어 business_timeRails

개시하다


레일스에서 영업일을 계산하기 편한gembusiness_time 명절의 설정 방법과 영업일 계산에 대한 소개다.

명절을 설정하다


명절은 다음과 같다BusinessTime::Config.holidays.
holiday = Date.parse('2019/9/16') # 敬老の日
BusinessTime::Config.holidays << holiday
holiday = Date.parse('2019/9/23') # 秋分の日
BusinessTime::Config.holidays << holiday
주의해야 할 것은 Date 금형을 넣지 않으면 공휴일을 포함하여 영업일을 계산할 수 없다는 것이다.ActiveSupport::TimeWithZone타입은 안 됩니다(특히 실수하지 않도록 주의하세요.ActiveSupport::TimeWithZone형이라면 다음과 같이 Date형으로 바꿀 수 있다.
holiday = Time.zone.local(2019, 9, 23) # 秋分の日
BusinessTime::Config.holidays << holiday.to_date

영업일 후 N개 계산


다음은 10일의 근무일을 계산한 예다.또 영업시간은 24시간, 영업일은 월요일부터 금요일까지다.
BusinessTime::Config.beginning_of_workday = "00:00:00"
BusinessTime::Config.end_of_workday       = "23:59:59"
BusinessTime::Config.work_week            = [:mon, :tue, :wed, :thu, :fri]
holiday = Date.parse('2019/9/16') # 敬老の日
BusinessTime::Config.holidays << holiday
holiday = Date.parse('2019/9/23') # 秋分の日
BusinessTime::Config.holidays << holiday

date = Time.zone.local(2019, 9, 7) # 土曜日
10.business_days.after(date)
=> Wed, 25 Sep 2019 09:00:00 JST +09:00
토요일(9/7Sat.)처럼 영업시간을 제외한 다음날 영업일(9/9Mon.)를 시작으로 다음 영업일(9/10Tue.)영업일로 계산하다.따라서 상술한 예에서 경로일과 추분 사이이기 때문에 9/25는 10번째 영업일이다.

좋은 웹페이지 즐겨찾기