programing

두 날짜 사이의 일 수

easyjava 2023. 6. 3. 08:50
반응형

두 날짜 사이의 일 수

이 두 날짜 사이의 일 수를 어떻게 계산합니까?

start_date = Date.parse "2012-03-02 14:46:21 +0100"
end_date =  Date.parse "2012-04-02 14:46:21 +0200"

Date(및 DateTime) 클래스를 사용하여 수행할 수 있습니다.(end_date - start_date).to_i날짜 차이를 계산합니다.

라고 가정하면end_date그리고.start_date둘 다 같은 반입니다.ActiveSupport::TimeWithZone레일에서 다음을 사용할 수 있습니다.

(end_date.to_date - start_date.to_date).to_i

레일즈에는 이 문제를 해결할 수 있는 도우미가 몇 명 있습니다.이 도움말은 Actionview 도우미의 일부이므로 콘솔에서 직접 사용할 수 없습니다.

사용해 보세요.

<% start_time =  "2012-03-02 14:46:21 +0100" %>
<% end_time   =  "2012-04-02 14:46:21 +0200" %>
<%= distance_of_time_in_words(start_time, end_time)  %>

 "about 1 month"

시간 범위의 일 수를 가져오려면(모든 일 수만)

(start_date..end_date).count
(start_date..end_date).to_a.size
#=> 32

두 날짜 사이의 일 수를 얻다

(start_date...end_date).count
(start_date...end_date).to_a.size
#=> 31

몇 초 만에 계속 결과를 얻었기 때문에 효과가 있었습니다.

(Time.now - self.created_at) / 86400

(현재 날짜에 대한) 이전의 답변 중 두 날짜 간의 정확한 날짜 차이를 제공하지 않습니다.

가장 가까이에 있는 것은 덩컨트 옆에 있습니다.전체 답변은 변환됩니다.to_i나눈 다음:

(Time.now.to_i - 23.hours.ago.to_i) / 86400
>> 0

(Time.now.to_i - 25.hours.ago.to_i) / 86400
>> 1

(Time.now.to_i - 1.day.ago.to_i) / 86400
>> 1

질문의 구체적인 예에서는 다음과 같이 구문 분석하면 안 됩니다.Date시간이 적절한 경우.사용하다Time.parse대신.

매우 늦었지만 다른 사람들에게 도움이 될 수도 있습니다.

end_date.mjd - start_date.mjd

https://apidock.com/ruby/Date/mjd

힌트: 이 기능은 날짜 개체에만 적용되며 시간 개체에는 적용되지 않습니다.

두 날짜 사이의 전체 일 수를 갖는 경우DateTime객체):

((end_at - start_at).to_f / 1.day).floor

현재 제가 일관되게 잘 작동하는 최고의 솔루션은 다음과 같은 패턴을 사용하는 것입니다.

(end_date.beginning_of_day - Time.now.utc.beginning_of_day).seconds.in_days

두 날짜 차이로 일 수를 얻는 방법

(start.to_date...end.to_date).count - 1
or 
(end.to_date - start.to_date).to_i
(end_date - start_date)/1000/60/60/24

모범 사례가 있는 사람은 아래에 댓글을 달아 주십시오.

def business_days_between(date1, date2)
  business_days = 0
  date = date2
  while date > date1
   business_days = business_days + 1 unless date.saturday? or date.sunday?
   date = date - 1.day
  end
  business_days
end

언급URL : https://stackoverflow.com/questions/9572860/count-number-of-days-between-two-dates

반응형