Bar tamamlanmadan işlem yapmak için;
Periyot = 120 dakika olsun
Periyot Kaç Zaman Dilimine Bölünecek = 15 dilim kabul edilsin
120 dakika x 60 / 15 dilim = 480 saniye
Bulunulan an
günün ilk barında ilk 480 saniyelik dilimindeyse
ya da
her bir 120 dakikalık barın son 480 saniyelik dilimindeyse
true değer döndüren metod
PHP Code:
public static bool AlımSatımİçinSaatDilimiUygun(string _Periyot)
{
try
{
int PeriyotKaçZamanDilimineBölünecek = 15;
int PeriyotKaçSaniyeSürüyor = Araçlar.PeriyoduSaniyeyeÇevir(_Periyot);
if (PeriyotKaçSaniyeSürüyor <= 0)
return false;
var Yıl = DateTime.Now.Year;
var Ay = DateTime.Now.Month;
var Gün = DateTime.Now.Day;
var BugününİşlemlerBaşlangıcı = new DateTime(Yıl, Ay, Gün, 10, 0, 0);
var ŞuAn = DateTime.Now;
if (ŞuAn < BugününİşlemlerBaşlangıcı)
return false;
int PeriyotDilimiKaçSaniyeSürüyor =
(int)Math.Floor((double)PeriyotKaçSaniyeSürüyor / (double)PeriyotKaçZamanDilimineBölünecek);
var GününİlkDilimi = BugününİşlemlerBaşlangıcı.AddSeconds((double)PeriyotDilimiKaçSaniyeSürüyor);
if (ŞuAn <= GününİlkDilimi)
return true;
var İkiGünÖncesininİşlemlerBaşlangıcı = BugününİşlemlerBaşlangıcı.AddDays(-2);
double İkiGünÖncesininİşlemlerBaşlangıcındanSonraGeçenSaniye =
ŞuAn.Subtract(İkiGünÖncesininİşlemlerBaşlangıcı).TotalSeconds;
int KaçTamPeriyotGeçti =
(int)Math.Floor((double)(İkiGünÖncesininİşlemlerBaşlangıcındanSonraGeçenSaniye / PeriyotKaçSaniyeSürüyor));
int PeriyodunTamamlanmasınaKaçSaniyeKaldı =
(int)((KaçTamPeriyotGeçti + 1) * PeriyotKaçSaniyeSürüyor - İkiGünÖncesininİşlemlerBaşlangıcındanSonraGeçenSaniye);
if (PeriyodunTamamlanmasınaKaçSaniyeKaldı <= PeriyotDilimiKaçSaniyeSürüyor)
return true;
return false;
}
catch { return false; }
}
Yer İmleri