Как я могу разделить свойства DateTime? - PullRequest
0 голосов
/ 27 марта 2012

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

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

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

Ответы [ 4 ]

7 голосов
/ 27 марта 2012

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

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

или вы можете использовать TimeSpan напрямую:

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

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

var diff = secondTime - firstTime;
var period = TimeSpan.FromSeconds(diff.TotalSeconds / 3.0);
for (var time = firstTime; time < secondTime; time += period)
{ /* do your stuff */ }
1 голос
/ 27 марта 2012

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
0 голосов
/ 27 марта 2012

Вы можете сделать это:

TimeSpan time = new TimeSpan(3, 0, 0);

if (date1.Subtract(date2) > time)

{
//YourCode
}

Для второго эта статья должна быть полезна:

http://www.blackwasp.co.uk/TimespanMultiplication.aspx

0 голосов
/ 27 марта 2012

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

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

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

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

...