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