2013-05-17 3 views
12

Я пытаюсь преобразовать переменную timespan в целочисленную переменную, используя «parse». Я получаю сообщение об ошибке, которая говорит:Как изменить переменную timepan на целочисленный тип?

Формат Исключение составил необработанное: Входная строка была не в правильном формате

Это код есть:

private void dateTimePicker4_ValueChanged(object sender, EventArgs e) 
    { 
     TimeSpan t = dateTimePicker4.Value.ToLocalTime() - dateTimePicker3.Value.ToLocalTime(); 
     int x = int.Parse(t.ToString()); 
     y = x; 
    } 

Моя цель, чтобы отобразить это изменение времени для двух динамиков времени, динамически в текстовом поле, т. е. разница в минутах между ними должна отображаться автоматически в текстовом поле.

+0

Это ужасный вопрос. Не сам вопрос, просто вы пытаетесь проанализировать значение «ToString». Вам нужно привыкнуть искать существующие свойства и методы, которые могут уже делать то, что вы хотите. Чаще всего этого нет, функциональность обычно существует уже, где-то – musefan

+0

спасибо, будет помнить об этом. –

ответ

22

Разница в минутах между ними должна отображаться в текстовом поле автоматически.

Вместо анализа используется TimeSpan.TotalMinutes.

t.TotalMinutes; 

Свойство имеет двойной тип, если вам просто нужно целой части, то вы можете сделать:

int x = (int) t.totalMinutes; 
+0

Что делать, если разница больше Int32 eg: diff. между началом и временем? –

+0

@SrivathsaHarishVenkataramana, используйте 'long'. Дело в том, чтобы взять целую часть числа ... – Habib

4
private void dateTimePicker4_ValueChanged(object sender, EventArgs e) 
    { 
     TimeSpan t = dateTimePicker4.Value.ToLocalTime() - dateTimePicker3.Value.ToLocalTime(); 
     int x = int.Parse(t.Minutes.ToString()); 
     y = x; 
    } 

Вы пытались изменить его на int x = int.Parse(t.Minutes.ToString());?

От: http://msdn.microsoft.com/en-us/library/system.timespan.aspx

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