5

人気のコミックxkcdは、完全な時間を日付に変換するためにこの方程式を提起しました。

時間の後方

私はJavaScriptで同じことをしようとしていますが、取得し続けてい-Infinityます。コードは次のとおりです。

var p = 5; // Percent Complete 
var today = new Date(); 
today = today.getTime(); 
var t;
t = (today) - (Math.pow(Math.E, (20.3444 * Math.pow(p,3))) -
Math.pow(Math.E,3));
document.write(t + " years");

時間は膨大な数(ミリ秒)を返します。この方程式はミリ秒を処理するためのものではないことを私は知っています。では、JavaScriptを使用して高度な日付方程式をどのように実行するのでしょうか。

4

2 に答える 2

2

あなたは 3 つの間違いを犯しました:

  1. p完了した進行状況の比率を示すために、0 から 1 までの 10 進数である必要があります。
  2. 結果は次のとおりです。最初に計算してから、その年数を差し引く 必要があります
    T = (current date) - (a number in years)

    T = (current date - a number) in years
    (e^…-e^3)t
  3. +3元の式にあった a を忘れました

編集:

Javascript は約 75% 完了した時点で日付が不足していますが、JSFiddle として機能するコードを次に示します

于 2012-09-04T11:44:25.410 に答える
2

パーセンテージ

var p = 5; // Percent Complete 

のはずなfraction completeので0.055%分となります。その後、完了にp近づくと 1 に近づき、時間は有限の限界に近づきます。

p = 55% 完了の場合、差し引いた時間は (およそ) に近づきます。

exp(20.3444*10^6)

の範囲をはるかに超える完成が近づくとdouble、すでにexp(40)宇宙の年齢の数百万倍になり、範囲をexp(1000)超えてdoubleいます。

于 2012-09-04T11:41:22.610 に答える