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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • jocc talking shit

    jocc talking

    6 NİSAN 2007
  • Max Lee

    Max Lee

    18 AĞUSTOS 2006