JavaScript Array - Überlappen sich die Zeiten
Hannes Weninger
- javascript
Hallo.
ich habe folgende JavaScript Funktion unten um zu checken, ob sich 2 Zeiten (start - end) überlappen. Das Funtioniert gut. Mein Problem ist jetzt, dass ich z.B: 6 Zeiten (start - end) haben kann und ich alles checken möchte, ob sich irgendein Intervall mit einem anderen überlappt.
Weiß jemand, wie ich das am besten lösen kann. Ich müsste ja z.B. meine 6 Zeiten in 2er Arrays aufsplitten, und da jede Kombination. Weiß da jemand eie bessere Lösung?
Danke! Hannes
function overlapping(a, b) {
function getMinutes(s) {
var p = s.split(':').map(Number);
return p[0] * 60 + p[1];
}
return getMinutes(a.end) > getMinutes(b.start) && getMinutes(b.end) > getMinutes(a.start);
}
document.write(overlapping({ start: '00:00', end: '00:00' }, { start: '00:00', end: '00:00' }) + '<br>');
document.write(overlapping({ start: '00:00', end: '02:00' }, { start: '00:00', end: '02:00' }) + '<br>');
Hallo Hannes Weninger,
Weiß jemand, wie ich das am besten lösen kann. Ich müsste ja z.B. meine 6 Zeiten in 2er Arrays aufsplitten, und da jede Kombination. Weiß da jemand eie bessere Lösung?
Zunächst:
Ist 4-6 1-2 7-8
eine gültige Angabe?
Bis demnächst
Matthias
Ist
4-6 1-2 7-8
eine gültige Angabe?
Ja, ist gültig, da sich keine Zeit überschneidet
Hallo Hannes Weninger,
Bis demnächst
Matthias
Hallo,
Inwiefern ist das jetzt ein anderes Problem, als deins von vor fünf Tagen?
Edit: eigentlich wollte ich das inzwischen vom Martin verlinkte Posting raussuchen.
Gruß
Kalk
Naja. der Sachverhalt ist doch etwas anderes. Beim anderen Post vor 5 Tagen hatte ich 2 Daten zu vergleichen. Hier möchte ich schaun, ob sich Intervalle überlappen.
Hallo,
Naja. der Sachverhalt ist doch etwas anderes.
Aber nicht so anders, dass man da jetzt in kurzer Zeit (mind.) drei Threads für benötigt.
Gruß
Kalk
Mahlzeit,
ich habe folgende JavaScript Funktion unten um zu checken, ob sich 2 Zeiten (start - end) überlappen. Das Funtioniert gut. Mein Problem ist jetzt, dass ich z.B: 6 Zeiten (start - end) haben kann und ich alles checken möchte, ob sich irgendein Intervall mit einem anderen überlappt.
diese Problemstellung hast du erst neulich schon einmal beschrieben.
Weiß jemand, wie ich das am besten lösen kann. Ich müsste ja z.B. meine 6 Zeiten in 2er Arrays aufsplitten, und da jede Kombination.
Nein, nicht jede.
Weiß da jemand eie bessere Lösung?
Was hat dir an meinem Lösungsansatz damals nicht gefallen?
So long,
Martin
Was hat dir an meinem Lösungsansatz damals nicht gefallen?
Nichts, ich bin schlichtweg gescheitert und habs dann mit der oberen Methode versucht.
Tach,
Weiß jemand, wie ich das am besten lösen kann. Ich müsste ja z.B. meine 6 Zeiten in 2er Arrays aufsplitten, und da jede Kombination. Weiß da jemand eie bessere Lösung?
je nachdem wie viel du mit Zeiten rechnen möchtest, könnnte es sich lohnen Moment.js zu nutzen und deine Zeiträume mit dem Plugin Moment-Range zu checken: https://github.com/gf3/moment-range#contains--within--overlaps--intersect--add--subtract
mfg
Woodfighter