按日期排序的问题

时间:2013-10-26 15:40:24

标签: c# .net list sorting datetime

我正在尝试仅显示24小时前或更短时间内添加到我的数据库的数据。但是,出于某种原因,我编写的代码无法正常工作,我的数据库中的两个条目(1个小时前,1个小时前的条目)显示出来。我的等式有问题吗?谢谢!

public void UpdateValues()
    {
        double TotalCost = 0;
        double TotalEarned = 0;
        double TotalProfit = 0;
        double TotalHST = 0;
        for (int i = 0; i <= Program.TransactionList.Count - 1; i++)
        {
            DateTime Today = DateTime.Now;
            DateTime Jan2013 = DateTime.Parse("01-01-2013"); //Hours since Jan12013
            int TodayHoursSince2013 = Convert.ToInt32(Math.Round(Today.Subtract(Jan2013).TotalHours)); //7
            int ItemHoursSince2013 = Program.TransactionList[i].HoursSince2013; //Equals 7176, and 7130

            if (ItemHoursSince2013 - TodayHoursSince2013 <= 24)
            {
                TotalCost += Program.TransactionList[i].TotalCost;
                TotalEarned += Program.TransactionList[i].TotalEarned;
                TotalProfit += Program.TransactionList[i].TotalEarned - Program.TransactionList[i].TotalCost;
                TotalHST += Program.TransactionList[i].TotalHST;
            }
        }
        label6.Text = "$" + String.Format("{0:0.00}", TotalCost);
        label7.Text = "$" + String.Format("{0:0.00}", TotalEarned);
        label8.Text = "$" + String.Format("{0:0.00}", TotalProfit);
        label10.Text = "$" + String.Format("{0:0.00}", TotalHST);
    }

1 个答案:

答案 0 :(得分:2)

将它放在你的for循环中(datetime变量现在把它放在外面):

DateTime now = DateTime.Now;
DateTime TransactionListDate = Program.TransactionList[i].HoursSince2013;
if (TransactionListDate > now.AddHours(-24) && TransactionListDate <= now)
{
    //it falls between now and last 24 hours....
}

我认为这就是你所需要的。我假设Program.TransactionList [i] .HoursSince2013是日期时间。