mergeCalendars
Description
Führt mehrere Arbeitskalender zu einem zusammen
mergeCalendars: (calendars: Calendar[] | Calendar, calendar2?: Calendar) => void
Parameters
calendars- (erforderlich) Calendar[] | Calendar - - ein Array von Kalenderobjekten oder das erste Kalenderobjektcalendar2- (optional) Calendar - Optional, das zweite Kalenderobjekt
Example
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)
]);
Details
Sie können auch eine Menge von Kalender-Objekten als Parameter der mergeCalendars-Methode angeben:
// verwenden von Kalendern als Argumente
const joinedCalendar = gantt.mergeCalendars(
gantt.getCalendar(mikeCalendarId),
gantt.getCalendar(johnCalendarId)
);
Logic for merging calendars
Beim Zusammenführen von Kalendern gilt folgende Logik: Der Wochentag im neuen Kalender wird nur dann als Arbeitstag (1/wahr) gezählt, wenn er in allen zusammengeführten Kalendern ein Arbeitstag ist (Logical AND (&&)):
// 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:
- Der erste Kalender hat Arbeitstage am Montag und Mittwoch:
const calendar1Id = gantt.addCalendar({
id: "calendar1",
worktime: {
days: [ 0, 1, 0, 1, 0, 0, 0 ]
}
});
- Der zweite Kalender hat Arbeitstage am Montag, Dienstag und Donnerstag:
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 ]
Related sample: Gantt. Merge work calendars (via mergeCalendars() method)
Hinweis
Die Logik berücksichtigt keine customWeeks.
Related API
Related Guides
Change log
- hinzugefügt in v7.0
Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.