루비에서 두 Date 개체 사이의 일 수를 어떻게 찾을 수 있습니까?
두 Date 개체 사이의 일 수를 어떻게 찾을 수 있습니까?
종료 날짜에서 시작 날짜를 뺍니다.
endDate - beginDate
irb(main):005:0> a = Date.parse("12/1/2010")
=> #<Date: 4911063/2,0,2299161>
irb(main):007:0> b = Date.parse("12/21/2010")
=> #<Date: 4911103/2,0,2299161>
irb(main):016:0> c = b.mjd - a.mjd
=> 20
위키피디아에서:
율리우스력(JD)은 기원전 4713년 1월 1일 그리니치 정오 이후의 날짜와 일의 분수로 표시되는 시간 간격입니다.
이것은 Ruby 2.0에서 변경되었을 수 있습니다.
제가 이것을 할 때 저는 분수를 얻습니다.예를 들어 콘솔(irb 또는 레일 c)
2.0.0-p195 :005 > require 'date'
=> true
2.0.0-p195 :006 > a_date = Date.parse("25/12/2013")
=> #<Date: 2013-12-25 ((2456652j,0s,0n),+0s,2299161j)>
2.0.0-p195 :007 > b_date = Date.parse("10/12/2013")
=> #<Date: 2013-12-10 ((2456637j,0s,0n),+0s,2299161j)>
2.0.0-p195 :008 > a_date-b_date
=> (15/1)
물론, 의도적으로 캐스팅은 기대되는 결과를 줍니다.
2.0.0-p195 :009 > (a_date-b_date).to_i
=> 15
DateTime 개체에도 사용할 수 있지만 이 예와 같이 몇 초를 고려해야 합니다.
2.0.0-p195 :017 > a_date_time = DateTime.now
=> #<DateTime: 2013-12-31T12:23:03-08:00 ((2456658j,73383s,725757000n),-28800s,2299161j)>
2.0.0-p195 :018 > b_date_time = DateTime.now-20
=> #<DateTime: 2013-12-11T12:23:06-08:00 ((2456638j,73386s,69998000n),-28800s,2299161j)>
2.0.0-p195 :019 > a_date_time - b_date_time
=> (1727997655759/86400000000)
2.0.0-p195 :020 > (a_date_time - b_date_time).to_i
=> 19
2.0.0-p195 :021 > c_date_time = a_date_time-20
=> #<DateTime: 2013-12-11T12:23:03-08:00 ((2456638j,73383s,725757000n),-28800s,2299161j)>
2.0.0-p195 :022 > a_date_time - c_date_time
=> (20/1)
2.0.0-p195 :023 > (a_date_time - c_date_time).to_i
=> 20
Ruby 2.1.3에서는 다음과 같이 변경되었습니다.
> endDate = Date.new(2014, 1, 2)
=> #<Date: 2014-01-02 ((2456660j,0s,0n),+0s,2299161j)>
> beginDate = Date.new(2014, 1, 1)
=> #<Date: 2014-01-01 ((2456659j,0s,0n),+0s,2299161j)>
> days = endDate - beginDate
=> (1/1)
> days.class
=> Rational
> days.to_i
=> 1
이건 어때?
(beginDate...endDate).count
범위는 고유한 일련 번호의 집합입니다.그리고....
배타적 범위 리터럴입니다.
그렇게beginDate..(endDate - 1)
똑같습니다.그렇지 않은 경우를 제외하고는.
beginDate가 endDate와 동일한 경우 첫 번째 요소는 고유성 및...
마지막 항목을 제외합니다.그래서 우리가 원한다면,.count
오늘부터 오늘 사이의 날짜는 0을 반환합니다.
이것은 저에게 효과가 있었습니다.
(endDate - beginDate).to_i
이 모든 것들이 저를 올바른 결과로 이끌었지만, 저는 결국 하게 되었습니다.
DateTime.now.mjd - DateTime.parse("01-01-1995").mjd
사용해 보십시오.
num_days = later_date - earlier_date
일 수 = (endDate - beginDate)/(60*60*24)
음, 당신이 말하는 "사이"에 대해서도 신경쓰세요.
days_apart = (to - from).to_i # from + days_apart = to
total_days = (to - from).to_i + 1 # number of "selected" days
in_between_days = (to - from).to_i - 1 # how many days are in between from and to, i.e. excluding those two days
언급URL : https://stackoverflow.com/questions/4502245/how-can-i-find-the-number-of-days-between-two-date-objects-in-ruby
'programing' 카테고리의 다른 글
HTML/CSS에서 이미지를 그레이스케일로 변환 (0) | 2023.05.31 |
---|---|
기본 안드로이드 빌드에 대응하지 못했습니다.SDK 위치를 찾을 수 없음 (0) | 2023.05.31 |
인스턴스화 시 VB.NET Dictionary에 값을 삽입하는 방법은 무엇입니까? (0) | 2023.05.31 |
CSS 강제 이미지 크기 조정 및 가로 세로 비율 유지 (0) | 2023.05.31 |
날짜 시간.지금 대 날짜 시간.UtcNow (0) | 2023.05.31 |