Спустя 2 года наработан некоторый опыт в работе с DateTime. Работать в подобных кейсах удобно приводя время в UTC - ToUniversalTime(), а затем его сравнивать.
Отвечая самому себе двухлетней давности на вопрос прошло ли X часов с какого-то момента datetime_start:
var datetime_start = "12/03/2018 23:00:00"; // project.Variables["time_start"].Value;
var datetime_utc = DateTime.Parse(datetime_start).ToUniversalTime();
double hours = 24; //double.Parse(project.Variables["hours"].Value);
bool time_comparison = datetime_utc.AddHours(hours) < DateTime.UtcNow;
if (time_comparison)
{
return hours+" час(ов) прошло с "+datetime_start;;
}
else
{
return hours+" час(ов) не прошло с "+datetime_start;
//если надо по false выйти:
//throw new Exception (hours+" час(ов) не прошло c "+datetime_start);
}
Помимо часов AddHours, есть также методы AddMonths, AddDays, AddMinutes, AddSeconds, AddMilliseconds. Что делает данную конструкцию очень удобной в применении.