如何在linq中比较日期c#

时间:2017-06-13 05:20:08

标签: c# json linq datetime

我在我的文件中有'创建日期'和'关闭日期',我正在json中转换它,所以我在json中有这个日期。 在我的方法中,我有两个参数,比如从日期到日期,我想在日期和日期之间计算我文件的特定列数据。那么我们如何编写代码来使用linq获取它。

我试过这个......

public JsonResult StatusDerails(DateTime from,DateTime to)
{
        string csvurl = WebConfigurationManager.AppSettings["csvfileurl"];
        var lines = System.IO.File.ReadAllLines(csvurl).Skip(1);
        List<Product> prdt = new List<Product>();
        foreach (string line in lines)
        {
            Product c1 = new Product();
            var split = line.Split(',');
            c1.ID = Int32.Parse(split[0]);
            c1.Area_Path = split[1];
            c1.IterationPath = split[2];
            c1.State = split[3];
            c1.Reason = split[4];
            c1.Priority = Int32.Parse(split[5]);
            c1.Severity = split[6];
            c1.Tags = split[7];
            c1.Title = split[8];
            c1.CreatedDate = split[9];
            c1.CreatedBy = split[10];
            c1.ResolvedDate = split[11];
            c1.ResolvedBy = split[12];
            c1.ClosedDate = split[13];
            c1.AssignedTo = split[14];
            prdt.Add(c1);
        }

        //var list = prdt.GroupBy(a=>a.AreaPath).Select(a=>new UIproduct() {

        var productName = prdt.Select(a => a.Area_Path).Distinct();
        List<StatusDetail> statusdetail = new List<StatusDetail>();
        foreach (var Name in productName)
        {
            StatusDetail sd = new StatusDetail();
            sd.CarryOver = prdt.Where(a => a.CreatedDate >= from.Date.ToString() && a.ClosedDate <= to.Date.ToShortDateString               
        }
        return Json(statusdetail, JsonRequestBehavior.AllowGet);

}

1 个答案:

答案 0 :(得分:0)

DateTime作为字符串的比较不是一个好的选择,并且不会给你确切的结果,所以我建议你将CreatedDateClosedDate的类型更改为DateTime。并比较linq中的两个DateTime值。我认为而不是分割json来创建某些类型的对象,你可以使用json转换器。

修复您的方案:

c1.CreatedDate = DateTime.Parse(split[9]);
c1.ClosedDate = DateTime.Parse(split[13]);

不要忘记更改课程类型,现在可以使用linq,如下所示:

sd.CarryOver = prdt.Where(a => a.CreatedDate >= from.Date && a.ClosedDate <= to.Date);