【问题标题】:Calculate years in a POCO Calculated Property计算 POCO 计算属性中的年份
【发布时间】:2014-01-23 11:34:25
【问题描述】:

我假设我已经很接近了。我有一个值StartedAgent,它将包含用户输入的特定日期。假设他们输入了“1985 年 1 月 1 日”,然后我想创建一个计算属性,我可以使用它来显示自该代理首次开始在房地产行业工作以来的多少年。下面是我的课。我试图尝试一下,但我做不到。我正在使用 C# 风格的 MVC 5、EF 6 和 .Net 4.5。

    namespace OrlandoAppraiser.Models
    {
        public class Appraiser
        {
            public int AgentID { get; set; }
            public string Name { get; set; }
            public string LicenseNum { get; set; }
            public DateTime StartedAgent { get; set; }

            public string YearsAsAgent
            {
                get { return (Math.Floor((DateTime.Now - StartedRealEstate).TotalDays / 365.25D)); }
            }
        }
    }

我查看了一些不同的答案,但我很难找到在计算属性中执行此简单操作的方法。我知道它不应该有太大的不同,但我的代码出错了。

【问题讨论】:

  • 我收到错误还不够。什么错误?
  • 只是想让你知道,我没有对你的问题投反对票。
  • 错误:Cannot implicity convert type double to string.
  • 感谢删除反对票的人。下次我会确保我在问题中有任何当前错误!

标签: c# datetime poco asp.net-mvc-5 date-arithmetic


【解决方案1】:

这应该会有所帮助。 this的修改版。

DateTime _startedRealEstate = new DateTime(2012, 11, 15);
public DateTime StartedRealEstate { get { return _startedRealEstate; } set { _startedRealEstate = value; } }

public int YearsAsAgent
{
  get
  {
      DateTime zeroTime = new DateTime(1, 1, 1);
      TimeSpan span = DateTime.Now - StartedRealEstate;
      int years = (zeroTime + span).Year - 1;
      return years;
  }
 }


 private void button1_Click_2(object sender, EventArgs e)
 {
      int totalYears = YearsAsAgent;
 }

【讨论】:

  • 你不能把它简化成DateTime.Now.Year - StartedRealEstate.Year吗?
  • 我可以让它工作,但我使用的是 MVC,所以不使用任何按钮点击。抱歉,如果我的术语令人困惑,我是 c# 新手
  • 按钮点击只是我如何使用它的示例代码。您可以在任何地方直接使用该属性。
  • 是的,这就是我要找的 Rowan。我可以在计算属性中使用一些简单的东西。但无论我怎么写,我都会遇到某种类型的错误。
  • @EricB 为什么你不能随便使用 YearsAsAgent
【解决方案2】:

这是一种非常简单的方法。如果属性是字符串,请确保调用 ToString()

public string YearsAsAgent
{
    get { return (DateTime.Now.Year - StartedRealEstate.Year).ToString(); }
}

【讨论】:

  • 是的!当我羞愧地低下头。感谢您对罗文的所有帮助,这不是您第一次帮助我!我欠你几杯啤酒!我到处寻找他们使用 math.floor 的其他示例,但这要简单得多。
猜你喜欢
  • 2013-08-22
  • 2016-01-01
  • 2020-12-01
  • 1970-01-01
  • 2018-07-11
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多