C # Можно ли преобразовать формат DateTime в целое число или число с плавающей запятой? - PullRequest
4 голосов
/ 24 мая 2011

У меня тут какие-то проблемы.Сделал некоторые исследования в Google, но я не могу найти то, что я ищу.Я пытаюсь запросить два ввода (datetime) в формате чч: мм, вычесть один для другого, а затем вернуть результат этого значения в минутах.Проблема в том, что я хочу вернуть это значение в виде целого числа, и я не могу найти правильный способ сделать это.В C / C ++ у меня не было бы таких проблем ... В любом случае, вот фрагмент того, о чем я говорю.на C #, так что если вы видите что-то не так, пожалуйста, будьте добры.

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 24 мая 2011

То, о чем вы говорите: TimeSpan:

DateTime dtBegin   = new DateTime(2011,5,1,22,0,0) ; // 10pm 1 May 2011
DateTime dtEnd     = new DateTime(2011,5,1,23,0,0) ; // 11pm 1 May 2011
TimeSpan tmElapsed = dtEnd - dtBegin ;               // tmElapsed is a TimeSpan with a value of 60 minutes

Чтобы вернуть минуты, сделайте что-то вроде:

int elapsedTimeInMinutes = (int) Math.Round( tmElapsed.TotalMinutes , 0 ,MidpointRounding.ToEven ) ;
2 голосов
/ 24 мая 2011
var timeInMinutes = new DateTime(2011, 12, 25).Subtract(new DateTime(2010, 1, 1)).TotalMinutes;

Вместо создания объектов DateTime с использованием конструктора, который я использовал, вы можете использовать DateTime.Parse или, еще лучше, DateTime.ParseExact, чтобы преобразовать строки во время даты.(Я знаю, что здесь я использую только части даты, но вы можете использовать только части времени, если хотите)

0 голосов
/ 24 мая 2011

Преобразование объектов DateTime в TimeSpan, substract и вызов TimeSpan.TotalMinutes (или что-то подобное - не иметь VS под рукой):

DateTime dt1, dt2;

// Назначить несколько дат, затем:

TimeSpan ts = dt2 - dt1;

двойные минуты = ts.TotalMinutes;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...