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

  • Android Police

    Android Poli

    21 NİSAN 2010
  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • BMG Rentals Property Management

    BMG Rentals

    23 Mayıs 2011