Überlappung von Zahlenpaaren

melmager

Erfahrenes Mitglied
ich habe zwei Zeitereignisse und möchte nun berechen wie weit sich die beiden Ereignisse überschneiden.

legen wir mal zum Verständnis fest das die zahlen einfach integer sind
also ereignis default start = 100 und ende = 200;
und dann vergleich start = 150 und vergleich ende 250.
sollte als ergebnis 50 bei raus kommen.

also default 100 / 200
vergleich 150 / 200 = 50
vergleich 150 / 175 = 25
vergleich 50 / 250 = 100
vergleich 50 / 150 = 50


Code:
int common(int defstart, int defend, int verstart, int verend) {
 int erg;
 if (defend > verstart & verend > defstart) { //erstmal sicherstellen das die bereiche sich überhaupt überschneiden
   // und nu ? alle möglichkeizen mit if abklappern oder gibts ne elegante rechen operation ?
 } else {
  erg = 0;
 }
 return erg;
}

ich könnte jetz naürlich alle möglichkeiten mit IF abfangen und entsprechend rechnen - aber gibts da nix fiffigeres *?*
 
Zuletzt bearbeitet:
Hi

Ungetestet
Java:
int common(int defstart, int defend, int verstart, int verend) {
	int erg = 0;
	if(defstart <= defend && verstart <= verend && defstart < verend && defend > verstart) {
		if(defend >= verend)
			erg = verend;
		else
			erg = defend;
		if(defstart <= verstart)
			erg -= verstart;
		else
			erg -= defstart;
	}
	return erg;
}
 
Zurück