2014-01-06 88 views
0

我假設我非常接近。我有一個值StartedAgent,它將包含用戶輸入的特定日期。讓我們說他們輸入「1/1/1985」然後我想創建一個計算的屬性,我可以使用它來顯示此代理首次開始在房地產中工作多少年。以下是我的課程。我曾試圖刺穿它,但我很短暫。我正在使用MVC 5,EF 6 & .Net 4.5中的C#風格。計算POCO中的年份計算屬性

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

我收到錯誤是不夠的。什麼錯誤? – MarcinJuraszek

+0

爲了讓你知道,我沒有投票你的問題。 – MarcinJuraszek

+0

錯誤:'不能將類型double轉換爲字符串。' –

回答

2

這是一個非常簡單的方法。如果屬性是字符串,請確保您撥打ToString()

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

是的!當我慚愧地垂​​下頭時。我感謝你的幫助羅恩,這不是你第一次幫助我!我欠你幾瓶啤酒!我到處尋找其他例子,他們正在使用math.floor,但這樣更簡單。 –

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; 
} 
+0

難道你不能將它簡化爲'DateTime.Now.Year - StartedRealEstate.Year'嗎? –

+0

我可能會得到這個工作,但我使用MVC,所以不使用任何按鈕點擊。對不起,如果我的術語很混亂,我是新來的c# –

+0

按鈕點擊只是我如何使用它的示例代碼。您可以直接在任何地方使用該屬性。 – Ehsan