Дата расчета в C # - PullRequest
       7

Дата расчета в C #

2 голосов
/ 29 августа 2011

У меня есть дата в виде строки в следующем формате:

yyyy-mm-dd

, например

2011-08-29

Я хочу проверить две даты и посмотреть, меньше ли date1 чем date2.

псевдокод:

string date1 = "2011-08-29";
string date2 = "2011-09-29";

if (date1 < date2) {
    MessageBox.Show("First date is smaller!");
}

Ответы [ 5 ]

4 голосов
/ 29 августа 2011
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;

if (result < 0)
   relationship = "is earlier than";
else if (result == 0)
   relationship = "is the same time as";         
else
   relationship = "is later than";
3 голосов
/ 29 августа 2011

Если гарантируется, что даты всегда в этом точном формате, достаточно сравнения строк.

1 голос
/ 29 августа 2011

Если даты в формате YYYY-mm-dd, синтаксический анализ не требуется.Ваш пример работает на отлично.

1 голос
/ 29 августа 2011

Вы можете создать объект DateTime, проанализировав эту строку, а затем продолжить эту логику.Пример:

DateTime dateTime1 = DateTime.Parse(date1);

для безопасного разбора, DateTime.TryParse(date1, out dateTime1)

1 голос
/ 29 августа 2011

Конвертируйте обе строки в переменные DateTime и используйте DateTime.CompareTo, найденное здесь http://msdn.microsoft.com/en-us/library/5ata5aya.aspx

Используйте Convert.ToDateTime(date1) для конвертации.

Решение может выглядеть как

If (Convert.ToDateTime(date1).CompareTo(Convert.ToDateTime(date2)) < 0){
MessageBox.Show("First date is smaller!");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...