2011-12-15 203 views
1

我可以用這個基於數學的查詢來掙扎。將十進制數轉換爲分數

我有兩個日期之間的秒差,並希望將秒數轉換爲分數。我的小數點運行良好,但我正在努力弄清楚如何將該值轉換爲小數。

因此,例如,兩個時間戳之間的星期差數是4.285714285714286。我想將其表示爲4 2/7

任何人都可以建議最有效的方式來實現這個在JavaScript中嗎?

+1

它總是會有效的幾周和幾天,你想要的?如果是這樣,那麼你可以採取週數的小數部分乘以7和四捨五入。這假定你總是想要超過7的東西。如果你的數字在分數的底部可以改變,那就更困難了...... – Chris 2011-12-15 12:29:43

+0

Arbritrary分數還是隻是第七? – hugomg 2011-12-15 12:30:28

回答

1

也許我不明白你的問題,所以這可能是一個非常天真的答案。如果是的話,就這麼說。

var 
    a = new Date(2011, 12, 31), 
    b = new Date(2011, 12, 1), 
    weekMilliSeconds = 7 * 24 * 60 * 60 * 1000, 
    fraction = (a - b)/weekMilliSeconds, 
    weeks = Math.floor(fraction), 
    days = Math.round((fraction - weeks) * 7); 

console.log(
    weeks + ' ' + days + '/7' // => 4 2/7 
);