この数学ベースのクエリでは苦労しています。小数点以下を小数点以下の桁数に変換します。
私は2つの日付の間の秒数に違いがあり、秒数を端数に変換したいと考えています。小数点はうまく働いていますが、この値をどのように分数に変換できるかを把握するのには苦労しています。
たとえば、2つのタイムスタンプ間の週数の差は、4.285714285714286です。私はこれを4 2/7
と表現したいと思います。
誰でもJavaScriptでこれを達成する最も効率的な方法を提案できますか?
この数学ベースのクエリでは苦労しています。小数点以下を小数点以下の桁数に変換します。
私は2つの日付の間の秒数に違いがあり、秒数を端数に変換したいと考えています。小数点はうまく働いていますが、この値をどのように分数に変換できるかを把握するのには苦労しています。
たとえば、2つのタイムスタンプ間の週数の差は、4.285714285714286です。私はこれを4 2/7
と表現したいと思います。
誰でもJavaScriptでこれを達成する最も効率的な方法を提案できますか?
多分私はあなたの質問を理解していないので、これは非常に素朴な答えになる可能性があります。はいの場合は、そう言います。
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
);
あなたはいつも効果的な週と日になるでしょうか?もしそうなら、あなたは週数の小数部分を取って7とラウンドを掛けることができます。これはあなたが常に7を超えるものを必要としていることを前提としています。もしその小数部の底にある数字が変わることがあれば、それはずっと難しくなります。 – Chris
直前の分数か、 – hugomg
彼らはいつも7番です。 – BenM