SORU
22 Kasım 2012, PERŞEMBE


Algoritma çakışan dönemler tespit

Eğer iki kez üst üste dönemler halinde tespit ettim.

Her dönem için bir başlangıç tarihi ve bir bitiş tarihi.

Eğer ilk kez regl (A) Bir tane(B/C) ile çakışan olup olmadığını tespit etmek için ihtiyacım var.

Eğer B başlangıcı, Bir sonu eşitse benim durumumda, bindirme(ters de değildir

Aşağıdaki durumlarda buldum:

enter image description here

Yani aslında böyle yapıyorum:

tStartA < tStartB && tStartB < tEndA //For case 1
OR
tStartA < tEndB && tEndB <= tEndA //For case 2
OR
tStartB < tStartA  && tEndB > tEndA //For case 3

(4 ya da 2 diye 1 veya hesap alınır)

çalışırçok etkili değil gibi görünüyor ama.

İlk c varolan bir sınıftır. bu(süre), bir şey timepsan, ama sabit bir başlangıç ile bir tarih gibi modelize.

İkincisi: zaten bir c vardır# (Datetime sınıfı gibi) bu işleyebilir? kod

Bu karşılaştırma en hızlı yapmak için yaklaşımınız ne olurdu? eğer üçüncü:

CEVAP
22 Kasım 2012, PERŞEMBE


Basit bir kontrol ederseniz iki farklı dönemde üst üste görmek için:

bool overlap = a.start < b.end && b.start < a.end;

ya senin kodu:

bool overlap = tStartA < tEndB && tStartB < tEndA;

(Eğer birbirimizi sadece dokun iki dönem üst üste söylemek istediğim konusunda fikrinizi değiştirirseniz < yerine <= kullanın.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HER0R

    HER0R

    16 Aralık 2007
  • Liam Underwood

    Liam Underwo

    19 Mayıs 2009
  • Make:

    Make:

    23 Mart 2006