如何在C#文本框中检查日期并显示日期是否早于DateTime.Now

时间:2016-04-08 14:31:09

标签: c# datetime textbox windows-forms-designer datetime-format

我有一个从txt文件读取并在文本框中显示的Windows窗体程序,输出可以是“在2016年3月21日的测试w / c 07/03/16”或“AT 09/05 / 2016“或”w / c 07/03/2016 AT 17/03/2016 w / c 25/04/2016“。我正在加载7个文本文件,其中一些包含1个,2个或3个日期。

如何检测这些日期,并能够输出检测到的日期是DateTime.Now之前还是之后?

1 个答案:

答案 0 :(得分:1)

如果您的字符串总是<{em> "Test w/c dd/MM/yy AT dd/MM/yyyy"格式,您可以Split带有空格的字符串,带上相关的字符串,解析它们使用ParseExact转至DateTime,并将其与DateTime.Now值进行比较。

var s = "Test w/c 07/03/16 AT 21/04/2016";
var arr = s.Split(' ');
var firstDate = DateTime.ParseExact(arr[2], "dd/MM/yy", CultureInfo.InvariantCulture);
var secondDate = DateTime.ParseExact(arr[4], "dd/MM/yyyy", CultureInfo.InvariantCulture);

你可以将它们比作;

if(firstDate < DateTime.Now)
// before
if(firstDate > DateTime.Now)
//after
if(secondDate < DateTime.Now)
// before
if(secondDate > DateTime.Now)
//after
if(firstDate < DateTime.Now && secondDate < DateTime.Now)
//Both before
if(firstDate > DateTime.Now && secondDate > DateTime.Now)
//Both after
etc..