Tiene que dividir la lógica en dos;
- Comprobar si la fecha es más que la fecha de inicio,
startTime > now
- Comprobar si la fecha es menor que la fecha de finalización,
endTime < now
Para un intervalo de fechas de la lógica debe satisfacer tanto (con lógica Y, &&
)
DateTime startTime = DateTime.Today.AddHours(9).AddMinutes(30);
DateTime endTime = DateTime.Today.AddHours(12+4);
DateTime now = DateTime.Now;
if(startTime > now && endTime < now) {
// do something
}
Si estás en la zona horaria ET, debería funcionar bien, pero por lo demás necesitas hacer algo de manipulación de la zona horaria. Verifique las otras respuestas.
o cualquier otra persona, ¿esto también cuenta para 'Eastern Daylight Time'? ¿O tiene que detectar si el horario de verano está activado y luego especificar qué zona usar? –
small addition: use DateTime.UtcNow esto es lo que se entiende con timeUtc – michaelAngelo
'Eastern Standard Time' debe manejar DST correctamente. Ver http://stackoverflow.com/questions/964894/how-to-convert-time-between-timezones-utc-to-edt – csm8118