1) есть набор данных в табличном виде, чтение производится построчно
выглядит он так
1 — номер машины (num)
2 — категория (ctg)
3 — время записи (controltime)
4 — скорость движения (velocity)
5 — долгота (longtitude)
6 — широта (latitude)
2) задача такова, высчитать время простоя и время в пути
private void RS_Time(DateTime time, int velo)
{
if (RS_b_isfirst)
{
RS_RunFrom=time;
RS_b_isfirst=false;
if (velo>0) {RS_b_velo=true;}
else {RS_b_velo=false;}
}
else
{
if((RS_b_velo && (velo==0)) || ((!RS_b_velo && !(velo==0))))
{
RS_b_isfirst=true;
if (RS_b_velo)
{//RTime.Add(time.Subtract(RS_RunFrom));
RTime = RTime + еime.Subtract(RS_RunFrom);
Cat_RTime = Cat_RTime+RTime;
}
else
{//STime.Add(time.Subtract(RS_RunFrom));
STime=STime + (time-RS_RunFrom);
Cat_STime = Cat_STime+STime;
}
}
}
}
такой бред получается
я воот думаю else тут не нужен....
логика такова...
1)приходят данные
2.1)смотрим машина стоит или едет в этот момент пишем
RS_b_velo=1 или =0, для движения или отсутствия такового.
2.2)пишем время начала действия — RS_RunFrom=time
3)смотрим след запись, если она до сих пор едет или стоит (соответственно) — if((RS_b_velo && (velo==0)) || ((!RS_b_velo && !(velo==0)))) то ничего не делаем.. а если она изменила свое состояние на противоположное, то мы вычитаем из данного времени, время начала стоянки\пути и записываем новое время time-RS_RunFrom
и так получаем R_Time и S_Time
моэжет я в логике ошибся или в коде... глянте на код со стороны.. а? а то какая нидь поди ошибка то мелкая...