How do i get the cropped integer number
我正在根据出生日期计算年龄。
1 2 3
| Int32 DOB = 19900427;
Int32 current = 20140111;
Int32 result = current - dob; |
现在我只需要在文本框中显示结果的起始2位数字。你能帮我一下吗?
- 请阅读此线程的日期差(以c年为单位)。你在那里找到你所需要的一切。
别那样做。不要这样做。你不能通过从一个值中减去另一个值来得到一个有用的年龄表示——你会发现,两个相距一天的人之间的差异,可以根据这些日期的确切时间而有很大的不同。
例如,假设三个人的出生日期为:
1 2 3
| A: December 30th 2013 - 20131230
B: December 31st 2013 - 20131231
C: January 1st 2014 - 20140101 |
这使得A和B的年龄相差1岁,但B和C的年龄相差8870岁。这对你肯定不好。
使用DateTime表示日期,或者最好使用我的noda时间库中的LocalDate。然后,您可以根据需要确定日期之间的差异-例如,可能只需要几天。
- 非常感谢你的快速回复。
- 这是我的代码:datetime date=datetime.today.date;int64 n=int64.parse(date.tostring("ddmmyyyy"));sqlconnection con=new sqlconnection(@"data source=sqlexpress;attachdbfilename=datadirectory adhar.m‌&8203;df;integrated security=true;user instance=true;"con.open();sqlcommand cmd=new sqlcommand("select dob from sample where cardnum=''+textbox 1.text+"'");cmd.executenquery();int64 dob=convert.toint32(cmd.executescalar());int64 result=n-dob;
- @帕莎:你为什么这么做?不要使用这种奇怪的整数表示。你不是要表示一个整数:你是要表示一个日期。SQL Server支持日期字段:使用它们。另外,使用参数化SQL而不是直接在SQL中嵌入值。
- 非常感谢您的建议,先生。我终于成功地用datetime计算出了正确的年龄。再次感谢!