Originally Posted by
coskunc
Belirli zaman aralığındaki HH LL değerlerini bulmak için bana kod örneğini sayın @Hector Salamanca
yazmıştı. Bunu uyarlayıp grafik üzerinde çizdirmek istedim. Ancak girilen aralığın tümündeki HH-LL değil de, aralığın son barındaki HH-LL değerini kullanıp devam ediyor, çözemedim. Nerede hata yapıyorum?
PHP Code:
var V = Sistem.GrafikVerileri;
//Zaman aralığındaki en Düşük ve En Yüksek değerleri Bulur
var Baslangic = "09:30";
var Bitis = "10:01";
var HH = Sistem.Liste(0);
var LL = Sistem.Liste(0);
//var liste = new List<float>();
for (int i=1; i < V.Count; i++)
{
if ( V[i].Date.ToString("HH:mm").CompareTo(Baslangic) >= 0
&& V[i].Date.ToString("HH:mm").CompareTo(Bitis) <= 0
)
{
LL[i] = (LL[i] ==0 ? V[i].Low : Math.Min(LL[i], V[i].Low ));
HH[i] = Math.Max(HH[i], V[i].High);
}
else
{
HH[i] = HH[i-1];
LL[i] = LL[i-1];
}
}
Sistem.Cizgiler[0].Deger = HH;
Sistem.Cizgiler[1].Deger = LL;
Ekran görüntüsünde, istediğim şey dörtgen içindeki HH-LL değerleri. Sistemin çizdiği ise aralıktaki son barın değerleri
Önceki talep de değişken yazdığı için son günün değerini hızlıca bulup değeri gösteriyordu.
grafikte liste olarak ihtiyaç var ise aşağıdaki şekilde kullanabilirsiniz.
PHP Code:
var V = Sistem.GrafikVerileri;
//Zaman aralığındaki en Düşük ve En Yüksek değerleri Bulur
var Baslangic = "09:30";
var Bitis = "10:01";
var SabahHH = 0f;
var SabahLL = 0f;
var HH = Sistem.Liste(0);
var LL = Sistem.Liste(0);
for (int i=1; i < V.Count; i++)
{
if (V[i].Date.Day != V[i-1].Date.Day)
{
SabahHH = 0f;
SabahLL = 0f;
}
if ( V[i].Date.ToString("HH:mm").CompareTo(Baslangic ) >= 0
&& V[i].Date.ToString("HH:mm").CompareTo(Bitis ) <= 0
)
{
SabahLL = (SabahLL ==0 ? V[i].Low : Math.Min(SabahLL, V[i].Low ));
SabahHH = Math.Max(SabahHH, V[i].High);
}
HH[i] = SabahHH;
LL[i] = SabahLL;
}
Sistem.Cizgiler[0].Deger = HH;
Sistem.Cizgiler[1].Deger = LL;
Yer İmleri