2012-03-27 2 views
0

Я хотел бы написать: если результат разницы в 2 DateTimes длится более 3 часов, тогда ... в инструкции if происходит. Но мне нужны только свойства в секундах или минутах, могу ли я извлечь именно это из объекта DateTime?Как можно отделить свойства DateTime?

if(diffResult > DateTime.Hour(3)) 
    { 
    } 

Я также хочу знать, возможно ли его разделить DateTime на периоды. Скажем, я хочу разделить мой diffResult (который является разницей между 2 DateTimes) на 3 периода или, возможно, каждые 3 секунды мой счетчик получает один добавленный к нему.

ответ

7

Для первой части: Вы можете вычесть два DateTime с, чтобы получить TimeSpan там вы можете получить общее количество различных блоков - например:

if ((secondTime - firstTime).TotalMinutes > 180.0) ... 

или вы могли бы использовать TimeSpan непосредственно:

if (secondTime - firstTime > TimeSpan.FromHours(3)) ... 

для secondpart вы должны сделать некоторые расчеты самостоятельно:

var diff = secondTime - firstTime; 
var period = TimeSpan.FromSeconds(diff.TotalSeconds/3.0); 
for (var time = firstTime; time < secondTime; time += period) 
{ /* do your stuff */ } 
+0

для (времени вара = firstTime; время GivenPie

-1

Методы, в которых вы задаете вопрос о возврате целочисленных результатов. В чем ваш вопрос? DateTime.Hour(3) даже не скомпилировал.

Я думаю, что вы ищете DateTime.Now.AddHours (3.0)

Я должен быть ясным, единственная причина, этот ответ это редко, из-за неправильного кода в вопросе автора какой. Поскольку я не пытаюсь догадаться о том, чего действительно хотят люди, то до автора, чтобы прояснить, что он хочет.

Все, что ему нужно сделать, это вычесть два DateTime значения и сравнить его с TimeSpan

1

U можно сравнить с использованием коды последующей:

DateTime dt = new DateTime(); 
       dt = DateTime.Now; 
       dt.AddHours(3); 
       int h = (int)DateTime.Now.Hour; 
       if (dt.Hour == h) 
        //Do something 
       else 
        //do otherthing 
Смежные вопросы