Reddit に基づいて並べ替えアルゴリズムを作成する: http://amix.dk/blog/post/19588
System.Math シグネチャの一部はアプリケーションが異なるため、すべてを合わせるのに少し苦労しています。
public class Calculation
{
protected DateTime Epoch = new DateTime(1970,1,1);
protected int EpochSeconds(DateTime date)
{
var td = date - Epoch;
return td.Days*86400 + td.Seconds + ((td.Milliseconds)/1000000);
}
protected int Score(int upVotes,int downVotes)
{
return upVotes - downVotes;
}
public int HotScore(int upVotes,int downVotes,DateTime date)
{
var s = Score(upVotes, downVotes);
var order = Math.Log(Math.Max(Math.Abs(s), 1), 10);
var sign = Math.Sign(s); //Edit from Jonathon Reinhart
var seconds = EpochSeconds(date) - 1134028003;
return Math.Round(order + sign + *seconds/45000, 7);
}
}
詳細情報の編集
具体的には、最後の行でエラーが発生しています
return Math.Round(order + sign + *seconds/45000, 7);
//error "The * or -> operator must be applied to a pointer"
"
メソッド署名で見つけることができる最も近い一致はこれです: http://msdn.microsoft.com/en-us/library/f5898377