计算POCO计算属性中的年数

时间:2014-01-06 05:33:32

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

我假设我非常接近。我有一个值StartedAgent,它将包含用户输入的特定日期。让我们说他们进入“1/1/1985”然后我想创建一个计算的属性,我可以用来显示自该代理商首次开始在房地产工作多少年。以下是我的课。我试图对它进行一次尝试,但是我的时间很短。我正在使用MVC 5,EF 6& .Net 4.5的C#。

    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)); }
            }
        }
    }

我已经看了一些不同的答案,但是我在查找计算属性中这么简单的方法时遇到了麻烦。我知道它应该没那么大不同,但我的代码出错了。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

这应该有所帮助。 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;
 }