kombiniert mehrere Arbeitskalender zu einem einzigen Kalender
calendars | Calendar[] | Calendar | entweder ein Array von Kalenderobjekten oder ein einzelnes Kalenderobjekt |
calendar2 | Calendar | optional, ein zweites Kalenderobjekt |
const johnCalendarId = gantt.addCalendar({
worktime: {
hours: ["0:00-24:00"],
days: [0, 1, 1, 1, 1, 1, 0]
}
});
const mikeCalendarId = gantt.addCalendar({
worktime: {
hours: ["8:00-12:00", "13:00-17:00"],
days: [0, 1, 1, 1, 1, 1, 0]
}
});
// Übergabe eines Arrays von Kalendern zum Zusammenführen
const joinedCalendar = gantt.mergeCalendars([
gantt.getCalendar(mikeCalendarId),
gantt.getCalendar(johnCalendarId)
]);
Sie können auch mehrere Kalenderobjekte als separate Parameter an die Methode mergeCalendars übergeben:
// Kalender als separate Argumente übergeben
const joinedCalendar = gantt.mergeCalendars(
gantt.getCalendar(mikeCalendarId),
gantt.getCalendar(johnCalendarId)
);
Beim Zusammenführen von Kalendern werden die Arbeitstage des resultierenden Kalenders ermittelt, indem geprüft wird, ob jeder Tag in allen zusammengeführten Kalendern ein Arbeitstag ist (unter Verwendung einer logischen UND-Operation (&&)):
// kalender 1 + kalender 2 = zusammengeführter kalender;
// Fall 1:
// Arbeitstag (1/wahr) + Arbeitstag (1/wahr) = Arbeitstag (1/wahr);
// Fall 2:
// Arbeitstag (1/wahr) + kein Arbeitstag (0/falsch) = kein Arbeitstag (0/falsch);
// Fall 3:
// kein Arbeitstag (0/falsch) + kein Arbeitstag (0/falsch) = kein Arbeitstag (0/falsch);
Beispiel mit zwei Kalendern:
const calendar1Id = gantt.addCalendar({
id: "calendar1",
worktime: {
days: [ 0, 1, 0, 1, 0, 0, 0 ]
}
});
const calendar2Id = gantt.addCalendar({
id: "calendar2",
worktime: {
days: [ 0, 1, 1, 0, 1, 0, 0 ]
}
});
Das Zusammenführen dieser Kalender:
const joinedCalendar = gantt.mergeCalendars([
gantt.getCalendar(calendar1Id),
gantt.getCalendar(calendar2Id)
]);
ergibt einen Kalender, bei dem nur Montag ein Arbeitstag ist:
// Tage: [ 0, 1, 0, 1, 0, 0, 0 ]
// +
// Tage: [ 0, 1, 1, 0, 1, 0, 0 ]
// =
// Tage: [ 0, 1, 0, 0, 0, 0, 0 ]
Verwandtes Beispiel: Gantt. Merge work calendars (via mergeCalendars() method)
Die Zusammenführungslogik berücksichtigt keine customWeeks.
hinzugefügt in v7.0
Zurück nach oben