Я делаю проект Windows, в котором у меня есть два элемента управления DateTimePicker, один для StartDate и другие для EndDate.Как сравнить две даты в datetimepicker
Во время выполнения, когда пользователь выбирает StartDate и EndDate из этих элементов управления, он должен читать текстовый файл (т.е.) log.txt & поиск по строке, получают соответствие обеих этих дат, а также между датами и записью данные в текстовое поле или этикеточной управления
для, например, в лог-файл, данные, как показано ниже:
3/12/2013 2:51:47 PM - ASDASDASD.D20131203145019 4/12/2013 2: 52:23 PM - ASDDFSDSA.C20131203145019 12/12/2012 14:52:37 PM - SDASAFAS_20131203182101.D 6/12/2013 15:17:11 PM - RRRTWEWA_20131203184602.D00 7/12/2013 3:35:32 PM - XBCNXCXCXC.D0120131203153408
если поиск от 5 дек 2013 7 дек 2013, он должен получить:
5/12/2013 2:52:37 PM - SDASAFAS_20131203182101.D 6/12/2013 3:17:11 PM - RRRTWEWA_20131203184602.D00 7/12/2013 3:35:32 PM - XBCNXCXCXC.D0120131203153408
, но до сих пор я получаю:
12/12/2012 14:52:37 PM - SDASAFAS_20131203182101.D 07/12/2013 3:35:32 PM - XBCNXCXCXC.D0120131203153408
Я возвращаю только StartDate & EndDate сопоставляя данные не между данными даты.
Ниже приведены некоторые кодировки я попытался:
try
{
// ...
string FDDate = FD.Date.ToString("M/d/yyyy");
string TDDate = TD.Date.ToString("M/d/yyyy");
string searchstring = EnterFileNameTextbox.Text.ToString();
string searchfromdate = FromDateTimePicker.Value.ToShortDateString();
string searchtodate = ToDateTimePicker.Value.ToShortDateString();
string line;
StringBuilder sb = new StringBuilder();
int counter = 0;
using (StreamReader file = new StreamReader(@"D:\log.txt"))
{
while ((line = file.ReadLine()) != null)
{
if (line.Contains(searchstring) && line.Contains(FDDate))
{
sb.AppendLine(line.ToString());
counter++;
}
else if (line.Contains(searchstring) && !line.Contains(FDDate))
{
if (FD.Date < TD.Date)
{
sb.AppendLine(line.ToString());
counter++;
FDDate = FD.Date.AddDays(1).ToShortDateString();
}
else if (FD.Date == TD.Date)
{
FDDate = FD.Date.ToShortDateString();
sb.AppendLine(line.ToString());
counter++;
}
}
}
}
ResultTextBox.Text = sb.ToString();
CountLabel.Text = counter.ToString();
}
catch (Exception ex)
{
MessageBox.Show("The file could not be read");
MessageBox.Show(ex.Message);
}
Я не получаю идею сделать петлю.
Либо установите, чтобы время было одинаковым, либо выделите дату в виде строки для пары идей здесь. –