여러 시간 범위가 주어지면 현재 시간이 속하는 시간 범위를 알아야합니다. 이 작업은 DateTime의 날짜 부분을 무시하고보다 효율적으로 수행 할 수 있습니다.시간 범위에서 겹침 찾기
TimeSlot.Overlaps(DateTime currTime)
메소드는 날짜 부분을 무시하고 시간 부분 만 일치시켜야합니다.
여러 시간 범위가 주어지면 현재 시간이 속하는 시간 범위를 알아야합니다. 이 작업은 DateTime의 날짜 부분을 무시하고보다 효율적으로 수행 할 수 있습니다.시간 범위에서 겹침 찾기
TimeSlot.Overlaps(DateTime currTime)
메소드는 날짜 부분을 무시하고 시간 부분 만 일치시켜야합니다.
public class TimeSlot
{
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public bool Overlaps(DateTime compareTime)
{
return Overlaps(new TimeSlot() { StartTime = compareTime, EndTime = compareTime });
}
public bool Overlaps(TimeSlot compareSlot)
{
return (
(compareSlot.StartTime.TimeOfDay >= StartTime.TimeOfDay && compareSlot.StartTime.TimeOfDay < EndTime.TimeOfDay) ||
(compareSlot.EndTime.TimeOfDay <= EndTime.TimeOfDay && compareSlot.EndTime.TimeOfDay > StartTime.TimeOfDay) ||
(compareSlot.StartTime.TimeOfDay <= StartTime.TimeOfDay && compareSlot.EndTime.TimeOfDay >= EndTime.TimeOfDay)
);
}
}
.Net에서 datediff 메서드를 사용합니다. 간격으로 사용할 날짜의 부분을 지정할 수 있습니다. 그래서, 먼저 당신은 아마 그들이 같은 날 안에 있는지 테스트하기를 원할 것입니다. 요일을 간격으로 지정하십시오. 결과는 0이어야합니다. 그런 다음 시간, 분, 초 등을 찾을 수 있습니다. 1 시간 45 분 대 1.75 시간 105 분의 분수 부분을 제공합니다. 그런 다음 TimeSlot 클래스의 시작 및 종료 데이터 시간을 비교하십시오. (사용자 정의라고 생각하십니까?)
"시간 범위"는 http://msdn.microsoft.com이 아닌 것처럼 들립니다. com/ko-ko/library/system.timespan.aspx는 무엇입니까? 그렇지 않다면 무엇입니까? 'TimeSlot'이란 무엇입니까? –
TimeSlot은 StartTime 및 EndTime 속성이있는 사용자 지정 클래스입니다. – Faisal