Выбрать время простоя и стоянки
От: Glorfindel Россия  
Дата: 05.07.05 08:14
Оценка:
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
моэжет я в логике ошибся или в коде... глянте на код со стороны.. а? а то какая нидь поди ошибка то мелкая...
Stars shine bright in the sky,
!!!WARNING!!!
you gonna die!!! }=)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.