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

  • metallmanutza13

    metallmanutz

    13 NİSAN 2007
  • ravinderosahn

    ravinderosah

    20 Temmuz 2009
  • Music EuroDance 2

    Music EuroDa

    12 Mayıs 2011