Сравнение времени между - PullRequest
0 голосов
/ 12 апреля 2010

Как проверить время между. Предположим, у меня есть время в строковом формате, например, «02:00 PM», и я хочу проверить его между двумя другими временами. Как я могу проверить это, так как время в строковом формате? Значение, которое нужно сравнить со временем, хранится в DataTable, и я использую функцию выбора таблицы данных.

Ответы [ 3 ]

3 голосов
/ 12 апреля 2010

Попробуйте DateTime.Parse(dateString1) > DateTime.Parse(dateString2).

Если ваш строковый формат не совместим с строковым форматом DateTime, вам необходимо проанализировать дату вручную.

Edit:
Вы можете использовать ParseExact, чтобы указать свой собственный формат:

string Format = "T";
CultureInfo provider = new CultureInfo("en-US");
if (DateTime.ParseExact(dateString1, format, provider) >
      DateTime.ParseExact(dateString2, format, provider))
{
    ...
0 голосов
/ 12 апреля 2010

Преобразуйте его в DateTime с текущей датой в качестве даты или TimeSpan, представляющей время с полуночи:

DateTime time = DateTime.Parse(timeString);

Или:

TimeSpan time = DateTime.Parse(timeString).TimeOfDay;

Если вы сравниваете значение со значением TimeSpan, это может быть проще, в противном случае вы должны убедиться, что значения DateTime, которые вы сравниваете, также имеют текущую дату в качестве даты. С другой стороны, значение DateTime можно использовать для сравнения времени в полночь, например, между 23:00 сегодня и 01:00 завтра.

0 голосов
/ 12 апреля 2010

Вы всегда можете преобразовать строку в интервал времени (или дату / время) примерно так:

        TimeSpan ts = Convert.ToDateTime("02:00 PM").TimeOfDay;
        TimeSpan checkValue1 = Convert.ToDateTime("01:00 PM").TimeOfDay;
        TimeSpan checkValue2 = Convert.ToDateTime("03:00 PM").TimeOfDay;
        bool passed = (ts >= checkValue1 && ts <= checkValue2);
...