这是一个小逻辑问题。我的数据网格具有按时间顺序排列的日期时间值。如果用户输入了乱序的日期时间,程序应该突出显示乱序的行。例如:这是初始订单。
10/5/2010 11:59:59
10/6/2010 00:00:00
10/6/2010 11:59:59
假设用户输入
10/5/2010 11:59:59
***10/7/2010 00:00:00***
10/6/2010 11:59:59
10/7/2010 00:00:00
这10/7/2010 00:00:00
是乱序,程序运行正常。
假设用户输入
10/5/2010 11:59:59
10/6/2010 00:00:00
***10/5/2010 11:59:59***
10/7/2010 00:00:00
这10/5/2010 11:59:59
是出局或订单行。但节目亮点10/6/2010 00:00:00
。
这是我检查上述内容的代码:
for (int nRow = 1; nRow < pSeries.Count; ++nRow)
{
// validation1
if (!check_range(nRow, i, pSeries[nRow].tim))
{
row = nRow;
err = (short)err_typ.e_out_range;
goto err_exit;
}
}
public bool check_range(int np, int nCol, DateTime dt)
{
DataArray pdata = GetDataArray(nCol);
bool valid = (np <= 0 || pdata[np - 1].Datetim <= dt) &&
(np >= (pdata.Count - 1) || dt <= pdata[np + 1].Datetim );
return valid;
}
DataArray
是用户定义的日期时间值数组。pSeries
,pData
属于DataArray
. 所以当我说它pdata[np - 1].DateTime
指的是日期时间单元格时。