【问题标题】:Multiplication Datetime * Double乘法日期时间 * 双倍
【发布时间】:2012-03-27 09:53:40
【问题描述】:

大家好,我的问题很简单。首先使用实体​​框架代码

我想将不同表中的两个属性相乘。问题是在我使用 int 类型之前,现在我必须使用时间。我该怎么办?

当我试图在 Time 属性中解决某件事时

public class Employe
{
    public Timespan Time { get; set; }
}

public class Customer
{
    public double Cost { get; set; }

    [NotMapped]
    public double Total { get { return Cost * Employe.Time.TotalMinutes } }
}

我应该使用什么数据类型来执行此操作?

我必须随着时间的推移将成本相乘,因为我必须返回一个包含总工作小时数的查询。时间代表员工的小时数

【问题讨论】:

  • 您将成本乘以时间?呃,你想在这里达到什么目的?
  • 时间代表小时和分钟。我考虑过使用 String.Format for time String.Format ("{0: h, mm"})
  • @MirkoPastorelli 你怎么能把这个乘以成本呢?也许在你的问题中举一个例子。

标签: asp.net-mvc-3 ef-code-first


【解决方案1】:

如果您的Time 属性应该存储员工工作了多长时间,那么您可能需要TimeSpan 类型而不是DateTime。然后你可以做类似的事情

Cost * Time.TotalHours

【讨论】:

  • 可以将timespan类型与double类型相乘吗?
  • @MirkoPastorelli:您不会乘以 TimeSpan,而是乘以它的一个属性,例如我上面显示的 TotalHoursTotalHours 是双重的。按照上面TimeSpan 上的链接查看MSDN 文档。
  • 那么Timespan中的时间数据...是对的吗?我应该在哪里申报总小时数?谢谢
  • @MirkoPastorelli 我有点困惑。您的“雇员”类上有一个属性,称为“时间”。我认为这应该记录员工做某事所花费的时间。它是否正确?我是说您可以将此属性的类型从 DateTime 更改为 TimeSpan。如果您知道员工开始的 DateTime 和员工结束的 DateTime,则可以从另一个中减去一个以获取 TimeSpan 对象。然后查看这个对象的 TotalHours 属性。
  • 我想做的是员工可以在这之后输入 0.30 、 1 h 、 1.30 h 、 2 、 2.30 等数据,然后我必须乘以成本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
相关资源
最近更新 更多