【问题标题】:How do i get the cropped integer number我如何获得裁剪的整数
【发布时间】:2014-01-30 16:26:58
【问题描述】:

我正在尝试根据出生日期计算年龄。

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

现在我只需要在文本框中显示结果的起始 2 位数字。你能帮我解决这个问题吗?

【问题讨论】:

标签: c#


【解决方案1】:

不要那样做。只是不要。您无法通过从另一个值中减去一个值来获得有用的年龄表示 - 您会发现相隔一天出生的两个人之间的差异可能会根据这些日期的确切时间而有很大差异。

例如,考虑三个出生日期为:

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

这使得 A 和 B 的年龄相差 1,但 B 和 C 的年龄相差 8870。这肯定对你不利。

使用DateTime 表示日期 - 或者最好使用我的Noda Time 库中的LocalDate。然后,您可以根据需要确定日期之间的差异 - 例如,可能仅在几天内。

【讨论】:

  • 非常感谢您的快速回复。
  • 这是我的代码: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 结果 = n - dob;
  • @Partha:你为什么要这么做?只是不要使用这种奇怪的整数表示。您不是在尝试表示整数:您是在尝试表示日期。 SQL Server 支持日期字段:使用它们。此外,使用参数化 SQL 而不是直接在 SQL 中嵌入值。
  • 非常感谢您的建议,先生。我终于成功地使用日期时间计算出正确的年龄。再次感谢!
猜你喜欢
  • 2018-08-16
  • 1970-01-01
  • 2017-03-28
  • 2019-11-07
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多