DateTime startTime = new DateTime(); DateTime endTime = new DateTime(); DateTime defaultDate = new DateTime(); switch (Math.Sign(startTime.CompareTo(defaultDate)) * 3 + Math.Sign(endTime.CompareTo(defaultDate))) { // -3 + (-1, 0 or 1) case -4: // startTime < defaultDate && endTime < defaultDate break; case -3: // startTime < defaultDate && endTime== defaultDate break; case -2: // startTime < defaultDate && endTime > defaultDate break; // 0 + (-1, 0 or 1) case -1: // startTime == defaultDate && endTime < defaultDate break; case 0: // startTime == defaultDate && endTime == defaultDate break; case 1: // startTime == defaultDate && endTime > defaultDate break; // 3 + (-1, 0 or 1) case 2: // startTime > defaultDate && endTime < defaultDate break; case 3: // startTime > defaultDate && endTime == defaultDate break; case 4: // startTime > defaultDate && endTime > defaultDate break; default: throw new Exception("program error"); }