in legacy/src/Calendar/EventSources/VSOCapacityEventSource.ts [528:578]
private _getCategorySubTitle(
category: Calendar_Contracts.IEventCategory,
events: Calendar_Contracts.CalendarEvent[],
query: Calendar_Contracts.IEventQuery,
): string {
// add up days off per person
const daysOffInRange: Date[] = [];
const queryStartInUtc = new Date(
query.startDate.getUTCFullYear(),
query.startDate.getUTCMonth(),
query.startDate.getUTCDate(),
query.startDate.getUTCHours(),
query.startDate.getUTCMinutes(),
query.startDate.getUTCSeconds(),
);
const queryEndInUtc = new Date(
query.endDate.getUTCFullYear(),
query.endDate.getUTCMonth(),
query.endDate.getUTCDate(),
query.endDate.getUTCHours(),
query.endDate.getUTCMinutes(),
query.endDate.getUTCSeconds(),
);
category.events.forEach(e => {
const event = events.filter(event => event.id === e)[0];
const datesInRange = Calendar_DateUtils.getDatesInRange(
Utils_Date.shiftToUTC(new Date(event.startDate)),
Utils_Date.shiftToUTC(new Date(event.endDate)),
);
datesInRange.forEach((dateToCheck: Date, index: number, array: Date[]) => {
const dateToCheckInUtc = new Date(
dateToCheck.getUTCFullYear(),
dateToCheck.getUTCMonth(),
dateToCheck.getUTCDate(),
dateToCheck.getUTCHours(),
dateToCheck.getUTCMinutes(),
dateToCheck.getUTCSeconds(),
);
if (Calendar_DateUtils.isBetween(dateToCheckInUtc, queryStartInUtc, queryEndInUtc)) {
daysOffInRange.push(dateToCheck);
}
});
});
// if user has only one day off, return that date
if (daysOffInRange.length === 1) {
return Utils_Date.localeFormat(daysOffInRange[0], Culture.getDateTimeFormat().ShortDatePattern, true);
}
// else return total number of days off
return Utils_String.format("{0} days off", daysOffInRange.length);
}