В моей WinForm пользовательский ввод в текстовое поле даты как '210514' или '231113 (в формате ddmmyy) Предположим, что сегодня дата = 291014 (29-окт-14). Использование Visual Studio 2010 C# 4.0. Установка даты на ПК: GMT +08: 00 дд-МММ-гг.Как проверить дату между двумя датами (не SQL)
CodeBehind:
// Split the input string into YYMMDD format and set it to a date object
DateTime inputDate = new DateTime(Convert.ToInt32(input.Substring(4, 2)), Convert.ToInt32(input.Substring(2, 2)), Convert.ToInt32(input.Substring(0, 2)));
// WinForm позволяет пользователю дату ввода не ранее чем за 2 года до даты сегодня и не более 1 месяца со дня сегодня.
DateTime minDate = DateTime.Now.AddMonths(-24);
DateTime maxDate = DateTime.Now.AddMonths(1);
Я пробовал много методов, но никто не работает (я также проверил множество тем/форумов).
//Method 1
if(inputDate >= minDate && inputDate <= maxDate)
return true
//Method 2: B return true but A ***always*** return false, Why??
if (inputDate >= minDate)
A = true;
if (inputDate <= maxDate)
B = true;
//Method 3: B return true but A ***always*** return false, Why??
if ((DateTime.Now - inputDate).Days >= (DateTime.Now - minDate).Days)
A = true;
if (inputDate <= maxDate)
B = true;
Во-первых, я бы предложил элементы 'DateTimePicker', а не' TextBoxes'. Если вы должны использовать 'TextBoxes', хотя, по крайней мере, используйте' DateTime.TryParseExact' для проверки и преобразования 'String' в' DateTime'. – jmcilhinney
Привет, jmcilhinney, наш клиент настаивает на том, чтобы вместо текстового ввода вместо текстового поля было указано текстовое поле, потому что они хотели ввести формат ddmmyy без выбора с помощью мыши. – furor
Затем, как я уже сказал, вы должны использовать 'DateTime.TryParseExact', чтобы сначала проверить данные, которые могут быть любыми в« TextBox », а затем преобразовать данные в значение« DateTime ». – jmcilhinney