Руби: Разница во времени в процентах? - PullRequest
0 голосов
/ 01 декабря 2009

Как бы я, например, узнал, что 6 вечера - это 50% между 16:00 и 20:00?
Или, что в 12:00 среда - 50% между 12:00 вторника и 12:00 среды?

Ответы [ 2 ]

6 голосов
/ 01 декабря 2009

Преобразование времени в секунды, вычисление промежутка в секундах, вычисление разницы между желаемым временем и первым временем в секундах, вычисление доли всего промежутка, а затем умножение на 100%?

Пример:

12 AM = 0 секунд (дня)

12 PM = 43200 секунд (дня)

Ваше желаемое время = 3 часа утра = 10800 секунд дня

Общий промежуток времени = 43200 - 0 = 43200 секунд

Разница во времени желаемого времени с первого раза = 10800 - 0 = 10800 секунд

Фракция = 10800/43200 = 0,25

Процент = 0,25 * 100% = 25%

(Извините, не знаю Руби, но есть идея.)

4 голосов
/ 01 декабря 2009
require 'date'

start = Date.new(2008, 4, 10)
middle = Date.new(2009, 12, 12)
enddate = Date.new(2009, 4, 10)

duration = start - enddate #Duration of the whole time
desired  = middle - start #Difference between desired + Start
fraction = desired / duration
percentage = fraction * 100

puts percentage.to_i

Спасибо «Джону У» за математику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...