12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- define([ "./Record", "requirejs-text/text!../cldr/supplemental/calendarData.json"],
- function (Record, calendarDataJson) {
-
- var calendarData = JSON.parse(calendarDataJson).supplemental.calendarData;
- var calendarFunctions = {
-
- eraOffset : function (calendar, era) {
- var eraStartDate = calendarData[calendar].eras[era.toString()]._start;
- var result = eraStartDate.charAt(0) === "-" ? Number(eraStartDate.split("-")[1]) * -1 :
- Number(eraStartDate.split("-")[0]);
-
- if (result <= 0) {
- result--;
- }
- return result;
- },
-
- findEra : function (calendar, date, maxEra) {
- var currentEra = maxEra;
- while (currentEra >= 0) {
- var compareDate = new Date();
- var eraStartDate = calendarData[calendar].eras[currentEra.toString()]._start;
- if (!eraStartDate) {
- return currentEra;
- }
- var pieces = eraStartDate.split("-");
- compareDate.setFullYear(pieces[0], pieces[1] - 1, pieces[2] - 1);
- if (date >= compareDate) {
- return currentEra;
- }
- currentEra--;
- }
- return currentEra;
- },
-
- setTimeFields : function (dt, timeZone, result) {
- result.set("hour", timeZone === "UTC" ? dt.getUTCHours() : dt.getHours());
- result.set("minute", timeZone === "UTC" ? dt.getUTCMinutes() : dt.getMinutes());
- result.set("second", timeZone === "UTC" ? dt.getUTCSeconds() : dt.getSeconds());
- var localMinutes = dt.getHours() * 60 + dt.getMinutes();
- var UTCMinutes = dt.getUTCHours() * 60 + dt.getUTCMinutes();
- result.set("inDST", timeZone === "UTC" ? false : localMinutes + dt.getTimezoneOffset() !== UTCMinutes);
- }
- };
- return calendarFunctions;
- });
|