Подтвердить что ты не робот

Сравнение даты. Как проверить, прошло ли 20 минут?

Как проверить, прошло ли 20 минут с текущей даты?

Например:

var start = DateTime.Now;
var oldDate = "08/10/2011 23:50:31"; 

    if(start ??) {
     //20 minutes were passed from start
    }

Какой лучший способ сделать это? Спасибо:)

4b9b3361

Ответ 1

  • Вы должны преобразовать свое время начала в UTC, скажем, "начать".
  • Теперь вы можете сравнить свое время начала с текущим временем UTC, используя:

    start.AddMinutes(20) > DateTime.UtcNow

Этот подход означает, что вы получите правильный ответ на изменение летнего времени.

Добавляя время к началу, вместо вычитания и сравнения общего времени на TimeSpan, у вас есть более читаемый синтаксис. И вы можете обрабатывать больше случаев разницы в датах, например. 1 месяц с начала, 2 недели с начала,...

Ответ 2

Разберите oldDate в объект DateTime (DateTime.Parse).

Вычтите анализируемую дату из start. Это вернет a TimeSpan.

Осмотреть TotalMinutes.

Ответ 3

var start = DateTime.Now;
var oldDate = DateTime.Parse("08/10/2011 23:50:31"); 

    if(start.Subtract(oldDate) >= TimeSpan.FromMinutes(20)) 
    {
     //20 minutes were passed from start
    }

Ответ 4

var start = DateTime.Now;
var oldDate = DateTime.Parse("08/10/2011 23:50:31");

if ((start - oldDate).TotalMinutes >= 20)
{
    //20 minutes were passed from start  
}

Ответ 5

Я смог выполнить это, используя библиотеку JodaTime в моем проекте. Я вышел с этим кодом.

String datetime1 = "2012/08/24 05:22:34";
String datetime2 = "2012/08/24 05:23:28";

DateTimeFormatter format = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss");
DateTime time1 = format.parseDateTime(datetime1);
DateTime time2 = format.parseDateTime(datetime2);
Minutes Interval = Minutes.minutesBetween(time1, time2);
Minutes minInterval = Minutes.minutes(20);

if(Interval.isGreaterThan(minInterval)){
  return true;
}
else{
  return false;
}

Это будет проверять, является ли интервал времени между datetime1 и datetime2 GreaterThan 20 Minutes. Измените свойство на секунды. Вам будет легче узнать. Это вернет false.

Ответ 6

var end = DateTime.Parse(oldDate);   
 if (start.Hour == end.Hour && start.AddMinutes(20).Minute >= end.Minute)