PDA

Tam Sürümünü Görmek İçin : TDateTime Karşılaştırma


Cenko
06/06/2006, 13:00
Selam,

DB'de real time datalar var, ben bu datalardan biri olan TDateTime olanları karşılaştırıyorum.Ancak karşılaştırma yapmadan önce DB'den vector'ün içine atıyorum bu TDateTime alanları ki daha hızlı yapsın. Mantık şöyle işliyor;
v_time vector'ündeki ilk tarihi alıyor ( örnek: 2005-02-11 19:49:00), kullanıcının isteği doğrultusunda bir zaman aralığı belirtiliyor. (örnek : size = 1, yani 1 dakikalık işlem yapılacak) Programda ise;


//2005-02-11 19:49:00 tarihi 1 dakika arttırılıyor x1 = 2005-02-11 19:50:00 oluyor
x1 = (((((double)v_time[i]) * 1440) + size) / 1440);

ShowMessage(x1);
//x2 hala ilk tarih yani 2005-02-11 19:49:00
x2 = v_time.at(i);

ShowMessage(x2);
// 2005-02-11 19:49:00 < 2005-02-11 19:50:00 koşulu sağlandığı sürece loop yapsın
while( x2 < x1)
{

//x2 büyük ya da eşit olana kadar devam etsin , vector'ün boyutunu geçmesin
if( (i >= v_time.size()) || (x2 >= x1) )
break;

//bid ve tarih datalarını vector'e atıyor sadece bizim istediğimiz koşullardakileri
v_temp.push_back(v_bid.at(i));
v_temptime.push_back(v_time.at(i));

// bir sonraki tarih değerine geçiyor vector'deki
i++;
//x2 yeni tarih değerini alıyor
x2 = v_time.at(i);
ShowMessage(x2);



}

Ancak sorun şu ki, loop birkaç sefer doğru yaptıktan sonra x2 tarih değeri x1'inkine eşit olduğu zaman dahi loopa giriyor! Bazen anlaşılmaz şekilde sapıtıyor. Fikri olan var mı?