날짜가 포함 된 AAA 목록을 날짜 범위와 비교하려고합니다. 목록에 날짜 범위가 있는지 확인하고 싶습니다. 날짜가있는 경우 목록 항목을 다른 목록에 복사합니다. BBB else BBB에 빈 값을 추가합니다.while 루프 난이도
내가 겪고있는 문제는 실제 코드에서는 while 루프의 거짓 진술을 어떻게 통과하지 못하는지 알지 못해서 비교가 끝날 때까지입니다.
아래 코드를 사용하면 while 루프에서 true와 false를 모두 전달하므로 필요한 결과가 위조됩니다. 내가 얻는 결과는 그것이있을 때마다이며, 나는 거짓과 같은 시간을 보내고 있습니다. 간단히 말해, 목록에 2010 년 6 월 5 일의 날짜가 포함되어 있고 날짜 범위는 2010 년 4 월 5 일에서 2010 년 7 월 5 일까지입니다. 그래서 나는 진실한 부분에서 창조 된 아이템을 갖게 될 것이며, 잘못된 부분에서 생성 된 아이템이 생길 것입니다. 존재하는 날짜는 참 또는 거짓 부분 일 수 있습니다. 두 가지 모두, 내가 빙과 같은 두 가지 아이템을 가지고 있습니다!
올바른 결과를 얻으려면 어떻게해야합니까? 다른 방법이나 suggetsion하시기 바랍니다. 다음과 같이
내 코드는 다음과 같습니다
DateTime StartDate;
DateTime EndDate;
Datetime tempDate = StartDate;
List<DateTime> dateToEvaluate;
bool TimeIsPresent = false;
foreach (var tempItem in TaskList)
{
while (EndDate.AddDays(1) != tempDate)
{
if (tempItem.Date[0] == tempDate)
{
TimeIsPresent = True;
break;
}
else
{
if (TimeIsPresent == False)
{
if (!(tempDate.DayOfWeek == DayOfWeek.Sunday)
{
dateToEvaluate = new List<DateTime>();
dateToEvaluate.Add(tempDate);
tempTask.Add(new GroupedTask { ID = null,
TaskID = null,
Date = dateToEvaluate });
}
}
}
tempDate = tempDate.AddDays(1);
}
if (TimeIsPresent == True)
{
tempTask.Add(new GroupedTask { ID = tempItem.ID,
TaskID = tempItem.TaskID,
Date = tempItem.Date });
TimeIsPresent = false;
}
}
나를 당신에게 예를 보자. 내 일정 범위는 다음과 같습니다 : 8 월 8 일 - 8 월 14 일 일요일 이제 내 작업 목록은 다음과 같습니다. item1 : Date 9Aug, item2 : Date 11Aug.
다음과 같이 그래서 내 tempTask이 있어야합니다 : 항목 1 : 날짜 8월 8일, TASKID : 널 (null), ID : 널 (null), 항목 2 : 날짜 8월 9일, TASKID : 678, ID : 7, 항목 3 : 날짜 10Aug, TASKID : null, ID : null, item4 : Date11 Aug, taskID : 890, ID : 34, item5 : date 8 월 8 일 taskID : null, ID : null, item6 : 8 월 13 일 taskID : null, ID : null
두 번째 예 :
다음과 같이 일 내 범위는 : 월 8월 8일 - 선드 다음과 같이 바깥 8월 14일 지금 내 작업 목록은 다음과 같습니다 항목 1 : 날짜 9Aug, 항목 2 : 날짜 11Aug, 항목 3 : 날짜 14Aug
다음과 같이 그래서 내 tempTask은 다음과 같아야합니다 항목 1 : 날짜 8월 8일, TASKID : 널 (null), ID : null, item2 : date 9 Aug, taskID : 678, ID : 7, item3 : 날짜 10Aug, taskID : null, ID : null, item4 : Date118, taskID : 890, ID : 34, item5 : 날짜 12 팔월, TASKID : 널 (null), ID : 널 (null), 는 item6 : 날짜 13 팔월, TASKID : 널 (null), ID : 널 (null), 는 item4는 : Date14 8월, TASKID : 894, ID : 74,
왜 TimeIsPresent에 'bool'을 사용하지 않고 'false'로 설정해야합니까? –
'TimeIsPresent'를'bool'로 정의하면'true'와'false'를 따옴표로 묶을 필요가 없습니다. 사실'if (TimeIsPresent)'또는'if (! TimeIsPresent)'대신에. – Gabe
'EndDate'는 어디에서 왔으며 왜 'EndDate.AddDays (1)'를 다시 계산합니까? – R0MANARMY