Hello.
I am trying to add the following custom hierarchy to Time dimensions. However, I am getting the following error message and it is not added. I would like to ask you what to do.
Type : Calculated
Name : 5-4-4
Levels : year, month, week, day
JavaScript code
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
var weekStartDate = new Date(timeValue);
// Week starts on Sunday.
weekStartDate.setDate(weekStartDate.getDate() - weekStartDate.getDay());
var year = timeValue.getFullYear();
var timezoneoffset = weekStartDate.getTimezoneOffset();
var nextYearStartDate = new Date(year + 1, 0, 1, 0, - timezoneoffset);
var daysTillNextYear = (nextYearStartDate.getTime() - weekStartDate.getTime()) / 86400000.0;
// 1st January is in the first week.
// The last days of December that falls into the same week when 1st January are counted for the the first week of the next year.
year = daysTillNextYear < 7 ? year + 1 : year;
var yearStartDate = new Date(year, 0, 1);
// 1st January should be in the first week.
// Weeks starts on Sunday.
yearStartDate.setDate(yearStartDate.getDate() - yearStartDate.getDay());
var dayInWeek = Math.ceil((timeValue.getTime() - weekStartDate.getTime()) / 86400000.0) + 1;
var days = Math.ceil((weekStartDate.getTime() - yearStartDate.getTime()) / 86400000.0);
var week = Math.floor(days / 7) + 1;
// 13 weeks in quarter with monthly split 5 4 4.
var quarter = Math.ceil(week / 13);
if (quarter == 5) {
quarter = 4;
var month = 12
} else {
var weekInQuarter = (week % 13) == 0 ? 13 : (week % 13);
var monthInQuarter = weekInQuarter == 1 ? 1 : Math.ceil((weekInQuarter - 1) / 4);
month = (quarter - 1) * 3 + monthInQuarter
}
const monthName = [“1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “11”, “12”];
return {
year: year,
year_name: year,
month: month,
month_name: year + “. " + monthName[month - 1],
week: week,
week_name: “W” + week,
day: dayInWeek,
day_name: strftime(”%b %d %Y", timeValue)
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Error message
“JavaScript calculation for Dec 26 9999 does not return required values for level Year.”