2015-02-04 5 views
0

의 날짜를 기준으로 지난 주 시작 날짜와 끝 날짜를 얻는 방법 (월요일 - 일요일에게)현재 주 루비의 날짜를 기준으로 지난 주 시작 날짜와 끝 날짜를 얻는 방법을 현재 주 루비

예 : 경우 날짜가 04-feb-15 일 경우 결과는 날짜가 27-feb-15 인 경우 start_date = 월요일 (26-jan-1015) end_date = 일요일 (1-feb-15)

일 것입니다. START_DATE = 월요일 (16 2 월 1015) 종료일 = (22 - 2 월 15 일) 지정된 날짜위한 다음 accordinglly 빼기 일주일의 하루 이야기

+0

당신은 [ActiveSupport의 dateAndTime의 :: 계산 (https://www.omniref.com/ruby/gems/activesupport/4.2.0/symbols/DateAndTime ::의 소스를 볼 수 있습니다 할 수 있습니다 계산). 이 모듈은 필요한 모든 계산을 지원합니다. – spickermann

답변

1

이 방법을 시도 할 수 있습니다 :

require 'date' 
=> true 

date = Date.today 
=> #<Date: 2015-02-04 ((2457058j,0s,0n),+0s,2299161j)> 

# date.wday return week day 
end_date = date-date.wday 
=> #<Date: 2015-02-01 ((2457055j,0s,0n),+0s,2299161j)> 

start_date = date-date.wday-6 
=> #<Date: 2015-01-26 ((2457049j,0s,0n),+0s,2299161j)> 

더 많은 작업을 위해 당신이 내가 잘 작동, 아래의 코드를 시도이 링크 Ruby Doc.

0

사용 날짜 번호의 wday :

require 'date' 

date = Date.parse("15-02-04") 
monday = date - (date.wday + 6) # 2015-01-26 
sunday = date - date.wday # 2015-02-01 

date = Date.parse("15-02-27") 
monday = date - (date.wday + 6) # 2015-02-16 
sunday = date - date.wday # 2015-02-22 
0

를 참조 할 수 있습니다.

monday = (Date.today.beginning_of_week - 7) # 2015-01-26 
sunday = (Date.today.end_of_week - 7) # 2015-02-01 
+0

irb에서 begin_of_week이 작동하지 않습니다. 활성 지원 레일과 함께 작동합니다. –

관련 문제