计算使用LINQ函数实例化的C#对象中的天数

用户名

我在表中有一列Datetime值。我在Controller中使用LINQ查询创建模型对象,在该模型中尝试执行计算以返回从日期值到现在为止的天数。结果将根据结果的值更新另一个字符串变量。

这是LINQ查询

        public ActionResult Index()
    {
        var result = from a in db.area
                     join c in db.sample
                     on a.location_id equals c.location_id into samples
                     let sample = samples.OrderByDescending(c => c.date_sampled).FirstOrDefault()
                     select new StatusModel
                     {
                         location_name = a.location_name,
                         latitude = a.latitude,
                         longitude = a.longitude,
                         status = sample.sample_status,
                         sampDate = sample.sample_date ?? DateTime.Now
                     };
        return View(result);
    }

这是我的StatusModel用来执行计算的方法和构造函数。

   public int difference;

    public StatusModel()
    {
        setStatus();
    }


    public void setStatus()
    {
        DateTime oldDate = sampDate;
        DateTime newDate = DateTime.Now;
        TimeSpan ts = newDate - oldDate;
        difference = ts.Days;
    }

当我手动输入日期时(例如,如果我设置了),则setStatus方法可以正常工作

DateTime oldDate = new DateTime(2016,2,9);

它按预期返回。但是,使用sampDate变量,它将返回“ 736047”作为所有内容的天数!我数据库中的日期设置为“ 2016-01-04”,当我运行我的项目时,视图中的所有日期都转换为MM-DD-YYYY,也许这就是问题所在。

该表示法:

   var x = new StatusModel {
           location_name = a.location_name,
           latitude = a.latitude,
           longitude = a.longitude,
           status = sample.sample_status,
           sampDate = sample.sample_date ?? DateTime.Now
    }

确切地意味着:

var x = new StatusModel();

x.location_name = a.location_name;
x.latitude = a.latitude;
x.longitude = a.longitude;
x.status = sample.sample_status;
x.sampDate = = sample.sample_date ?? DateTime.Now;

首先,此代码将运行的构造函数StatusModel,然后将插入属性的值。在您的情况下重要的是:

public StatusModel()
{
    setStatus();
}

您正在setStatus()构造函数中运行方法,该方法正在为设置值difference

但是,此方法正在使用sampDate尚未“初始化”的方法-因此sampDate将有一个默认值DateTime,即0001-01-01因此,现在您有一个原因,为什么要difference返回736047天,因为您要减去2016-0001(大约)。

现在是时候解决主要问题了-如何返回这两个日期的差额。这将非常容易。

public int difference {
   get { return (sampDate - DateTime.Now).Days; }
}

public StatusModel()
{

}

现在,您已经掌握了difference该领域的逻辑,在我看来,在这种情况下,这更“自然”。difference每次您“询问”该属性的值时,以及在将模型传递给视图期间(使用return View(model);,都会返回正确的值

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用C ++中的合成进行对象实例化计算

来自分类Dev

使用C ++中的合成进行对象实例化计算

来自分类Dev

C ++对象实例化-使用空括号实例化对象时调用哪个构造函数

来自分类Dev

如何使用函数实例化空对象中的值

来自分类Dev

使用C#中的嵌套类反序列化JSON。在哪里创建对象实例?

来自分类Dev

无法在字符串中使用C#中的反射/汇编/激活器实例化对象

来自分类Dev

在 C# 中使用基类和派生类实例化数组中的对象

来自分类Dev

在Robot Framework中实例化C#对象

来自分类Dev

如何防止在C#中实例化对象

来自分类Dev

如何防止在C#中实例化对象

来自分类Dev

C#中的对象实例化之间的区别:将对象存储在引用中与直接调用方法

来自分类Dev

使用反射的对象实例化在VB.NET中有效,但在C#中不起作用

来自分类Dev

使用LINQ用XML在C#中创建对象

来自分类Dev

使用LINQ / C#在MongoDB集合中查找子对象

来自分类Dev

c#使用Linq更新列表中的对象

来自分类Dev

JavaScript中的函数与对象以及没有函数的实例化

来自分类Dev

您可以从C#中的Task中的实例化获取对象吗?

来自分类Dev

在方法中实例化并添加到C#中Collection的对象的持久性

来自分类Dev

C#LINQ到SQL默认对象实例化优化?

来自分类Dev

使用构造函数参数实例化类对象与不使用参数C *实例*运算符之间的区别

来自分类Dev

构造函数中的实例化对象时的C ++类成员作用域

来自分类Dev

在Python中的对象实例化期间使用构造函数参数变量名称?

来自分类Dev

在C#中实例化IEnumerable数组

来自分类Dev

在C#中实例化Singleton

来自分类Dev

相同类的实例化对象是否添加到内存(C#)中?

来自分类Dev

在C#对象实例化中,如果捕获异常,是否需要Null检查

来自分类Dev

C#中new<object>(){}和new<object>{}实例化对象的区别

来自分类Dev

如何在 Unity C# 中为实例化对象提供唯一 ID

来自分类Dev

C#| 使用另一个实例的属性初始化新对象的语法

Related 相关文章

  1. 1

    使用C ++中的合成进行对象实例化计算

  2. 2

    使用C ++中的合成进行对象实例化计算

  3. 3

    C ++对象实例化-使用空括号实例化对象时调用哪个构造函数

  4. 4

    如何使用函数实例化空对象中的值

  5. 5

    使用C#中的嵌套类反序列化JSON。在哪里创建对象实例?

  6. 6

    无法在字符串中使用C#中的反射/汇编/激活器实例化对象

  7. 7

    在 C# 中使用基类和派生类实例化数组中的对象

  8. 8

    在Robot Framework中实例化C#对象

  9. 9

    如何防止在C#中实例化对象

  10. 10

    如何防止在C#中实例化对象

  11. 11

    C#中的对象实例化之间的区别:将对象存储在引用中与直接调用方法

  12. 12

    使用反射的对象实例化在VB.NET中有效,但在C#中不起作用

  13. 13

    使用LINQ用XML在C#中创建对象

  14. 14

    使用LINQ / C#在MongoDB集合中查找子对象

  15. 15

    c#使用Linq更新列表中的对象

  16. 16

    JavaScript中的函数与对象以及没有函数的实例化

  17. 17

    您可以从C#中的Task中的实例化获取对象吗?

  18. 18

    在方法中实例化并添加到C#中Collection的对象的持久性

  19. 19

    C#LINQ到SQL默认对象实例化优化?

  20. 20

    使用构造函数参数实例化类对象与不使用参数C *实例*运算符之间的区别

  21. 21

    构造函数中的实例化对象时的C ++类成员作用域

  22. 22

    在Python中的对象实例化期间使用构造函数参数变量名称?

  23. 23

    在C#中实例化IEnumerable数组

  24. 24

    在C#中实例化Singleton

  25. 25

    相同类的实例化对象是否添加到内存(C#)中?

  26. 26

    在C#对象实例化中,如果捕获异常,是否需要Null检查

  27. 27

    C#中new<object>(){}和new<object>{}实例化对象的区别

  28. 28

    如何在 Unity C# 中为实例化对象提供唯一 ID

  29. 29

    C#| 使用另一个实例的属性初始化新对象的语法

热门标签

归档