我有一个从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
之前还是之后?
答案 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..