2014-01-11 6 views
0

Я пытаюсь рассчитать возраст, основанный на DOB.Как получить обрезанное целое число

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

Теперь мне просто нужно отобразить начальную 2-значную цифру результата в текстовом поле. Не могли бы вы мне помочь?

+0

Пожалуйста, прочитайте эту тему [Date Difference in Years 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 

Это дает разницу в возрасте от A и B 1, но разница в возрасте от B и C в 8870. Это конечно, не хорошо для вас.

Использовать DateTime для представления дат - или предпочтительно использовать LocalDate из моей библиотеки Noda Time. Затем вы можете определить разницу между датами, сколько вы хотите - возможно, всего за несколько дней, например.

+0

Большое спасибо за ваш быстрый ответ. – Partha

+0

Вот мой код: DateTime date = DateTime.Today.Date; Int64 n = Int64.Parse (date.ToString ("ddmmyyyy")); SqlConnection con = new SqlConnection (@ "Источник данных =. \ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ adhar.mdf; Integrated Security = True; Пользовательский экземпляр = True;"); con.Open(); SqlCommand cmd = new SqlCommand ("select dob ​​from sample Где cardnum = '" + TextBox1.Text + "'"); cmd.ExecuteNonQuery(); Int64 dob = Convert.ToInt32 (cmd.ExecuteScalar()); Int64 result = n - dob; – Partha

+0

@ Partha: Зачем ты это делаешь? Просто * не * используйте это странное целочисленное представление вообще. Вы не пытаетесь представить целое число: вы пытаетесь представить дату. SQL Server поддерживает поля «Дата»: используйте их. Кроме того, используйте параметризованный SQL, а не встраивать значения непосредственно в SQL. –

Смежные вопросы