주어진 DateRange 주어진 기간과 겹치는 시작 및 종료일 목록을 반환해야합니다.오버랩 시작 및 종료 날짜 얻기
가장 좋은 방법은 무엇입니까? 미리 시간을내어 주셔서 감사합니다.
static void Main(string[] args)
{
//Period 1stMarch to 20th April
var startDate = new DateTime(2011, 03, 1);
var endDate = new DateTime(2011, 4, 20);
List<BookedPeriod> bookedPeriods=new List<BookedPeriod>();
bookedPeriods.Add(new BookedPeriod {StartDate = new DateTime(2011, 02, 5), EndDate = new DateTime(2011, 3, 15)});
bookedPeriods.Add(new BookedPeriod { StartDate = new DateTime(2011, 03, 20), EndDate = new DateTime(2011, 4, 10) });
bookedPeriods.Add(new BookedPeriod { StartDate = new DateTime(2011, 04, 01), EndDate = new DateTime(2011, 4, 15) });
List<OverlappedPeriod> myOverllappedPeriods = GetOverllapedPeriods(startDate, endDate, bookedPeriods);
}
public static List<OverlappedPeriod>GetOverllapedPeriods(DateTime startDate,DateTime endDate,List<BookedPeriod>bookedPeriods)
{
List<OverlappedPeriod>overlappedPeriods=new List<OverlappedPeriod>();
// Given a DateRange I need to return a list of Start and EndDates that overlaps
//??how I do i
return overlappedPeriods;
}
}
public class BookedPeriod
{
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
public class OverlappedPeriod
{
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
내가 clarifing의 희망에서 편집하기로 결정 때문에 나를 도와있는 사람을 돕고있다 을 편집했다. 중첩 대 교차로 혼란스러워합니다. 시나리오는 내가 3 월 11-15 4 월 (11)
내가 05 사이에 휴가를 갈 2월 11일 (20) 3 월 (11) 01에서 내가 필요
간다 체육관에 가입을 예약했던
도움이 될 수 있습니다 내가 헬스 클럽 내가 돌아 가야 결과에 갈 수 없음을 시작하고 내 구독 유효 종료 날짜를 얻는 것은 STARTDATE = 2011년 3월 1일 = 2011년 3월 15일 종료 날짜입니다
myAttempt : 정적 무효 메인() { // 공휴일 var startDate = new DateTime (2011, 02, 5); var endDate = 새 DateTime (2011, 3, 15); (죄송 테스트하지)이 같은
List<BookedPeriod> bookedPeriods = new List<BookedPeriod>();
bookedPeriods.Add(new BookedPeriod { StartDate = new DateTime(2011, 02, 5), EndDate = new DateTime(2011, 4, 20) });
List<OverlappedPeriod> overlappedPeriods=new List<OverlappedPeriod>();
foreach (var bookedPeriod in bookedPeriods)
{
DateTime newStartDate = new DateTime();
DateTime newEndDate = new DateTime();
OverlappedPeriod overlappedPeriod=new OverlappedPeriod();
overlappedPeriod.StartDate = newStartDate;
overlappedPeriod.EndDate = newEndDate;
GetDateRange(bookedPeriod.StartDate, bookedPeriod.EndDate, out newStartDate, out newEndDate);
overlappedPeriods.Add(overlappedPeriod);
}
//do something with it
}
private static void GetDateRange(DateTime startDate,DateTime endDate,out DateTime newStartDate,out DateTime newEndDate)
{
/*
* I need to get the start and end date when my subscription is valid that I will NOT BE GOING TO THE GYM
The result I should get back is StartDate=1 March 2011 EndDate =15 March 2011
*/
}
고마워요 !!!! 나는 둘 다 얻을 필요가있어. 나는 이제 그걸 갈거야 – user9969
죄송합니다. 겹치는 기간의 시작과 날짜 만 있으면됩니다. 비록 잘못된 결과를 얻는 것 같습니다. – user9969
아, 알겠습니다. 내 대답을 편집했습니다. 이제 지정한 범위와 겹치는 예약 기간의 일부를 반환합니다. – jevakallio