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

  • LinusTechTips

    LinusTechTip

    25 Kasım 2008
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007
  • rekjavicxxx

    rekjavicxxx

    28 EKİM 2007