我有一個start_at
,小數quantity
和interval
這是一個day | week | month | year
。紅寶石十進制轉換時間(天|周|月|年)結束日期
start_at = Time.parse('2016-01-01 00:00:00 UTC') # leap year
quantity = BigDecimal.new('1.998') # changed from 2.998, should end on 2/29/16 sometime
interval = 'month' # could be any of day|week|month|year
隨着整數,我使用時間,即1.month
,我看着Date#advance
,但它只能識別整數值。
這看起來很簡單,但我在標準庫或ActiveSupport中找不到任何東西。
參考文獻:
問題
我怎樣才能建立一個從十進制end_at
日期?
爲什麼?目的是什麼?
對於給定數量的第二個推斷和給定間隔。
期望
我正在尋找一個end_at
到第二儘可能準確相對於前進下一interval
(一個或多個)由十進制quantity
。給定interval = 'month'
,對於小數部分,當您通過月份的開始時,表示您當月是in
並使用它的持續時間。例如,2016年1月是31天,而2月(閏年)是29天(僅在閏年)。
您是否試圖將日期時間提前2.998個月? –
甚至沒有意義。一個月的時間長短取決於手頭的月份。因此,如果您將月份作爲固定的30天時間間隔,則只需使用30天內的秒數計算所有內容即可。 – phoet
@phoet - 這就是爲什麼這不是直接的,否則你會做'30.days.to_i *數量'。 – kross