2014-01-11 69 views
0

我想根據DOB計算年齡。我如何得到裁剪的整數

Int32 DOB = 19900427; 
Int32 current = 20140111; 
Int32 result = current - dob; 

現在我只需要在文本框中顯示的起始2位結果。你能幫我解決這個問題嗎?

+0

請閱讀本主題[日期差異在C#](http://stackoverflow.com/questions/4127363/date-difference-in-years-c-sharp)。喲找到你需要的一切。 –

回答

3

不要這樣做。不要。你不能通過從另一個值中減去一個值得到一個有用的年齡表示 - 你會發現兩個相隔一天出生的人之間的差異可能會根據這些日期的確切時間而大量不同。

例如,考慮三種人的出生日期:

A: December 30th 2013 - 20131230 
B: December 31st 2013 - 20131231 
C: January 1st 2014 - 20140101 

這給了B的的8870.歲和C這之間的差異的年齡和1 B之間的差異,但肯定對你不好。

使用DateTime表示日期 - 或優選地,使用LocalDate從我的Noda Time庫。然後,您可以根據需要確定日期之間的差異 - 例如可能僅在幾天內。

+0

非常感謝您的快速回復。 – Partha

+0

這是我的代碼:DateTime date = DateTime.Today.Date; Int64 n = Int64.Parse(date.ToString(「ddmmyyyy」)); SqlConnection con = new SqlConnection(@「Data Source =。\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ adhar.mdf; Integrated Security = True; User Instance = True;」); con.Open(); SqlCommand cmd = new SqlCommand(「select dob from sample Where cardnum ='」+ TextBox1.Text +「'」); cmd.ExecuteNonQuery(); Int64 dob = Convert.ToInt32(cmd.ExecuteScalar()); Int64 result = n - dob; – Partha

+0

@Partha:你爲什麼這麼做?只*不*使用這個奇怪的整數表示。你不是想表示一個整數:你試圖表示一個日期。 SQL Server支持日期字段:使用它們。另外,使用參數化的SQL,而不是直接在SQL中嵌入值。 –