2014-01-11 29 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中嵌入值。 –