1/* 2 * Globalize Culture ar-SA 3 * 4 * http://github.com/jquery/globalize 5 * 6 * Copyright Software Freedom Conservancy, Inc. 7 * Dual licensed under the MIT or GPL Version 2 licenses. 8 * http://jquery.org/license 9 * 10 * This file was generated by the Globalize Culture Generator 11 * Translation: bugs found in this file need to be fixed in the generator 12 */ 13 14(function( window, undefined ) { 15 16var Globalize; 17 18if ( typeof require !== "undefined" && 19 typeof exports !== "undefined" && 20 typeof module !== "undefined" ) { 21 // Assume CommonJS 22 Globalize = require( "globalize" ); 23} else { 24 // Global variable 25 Globalize = window.Globalize; 26} 27 28Globalize.addCultureInfo( "ar-SA", "default", { 29 name: "ar-SA", 30 englishName: "Arabic (Saudi Arabia)", 31 nativeName: "Ø§ÙØ¹Ø±Ø¨ÙØ© (اÙÙ Ù ÙÙØ© Ø§ÙØ¹Ø±Ø¨ÙØ© Ø§ÙØ³Ø¹ÙØ¯ÙØ©)", 32 language: "ar", 33 isRTL: true, 34 numberFormat: { 35 pattern: ["n-"], 36 "NaN": "ÙÙØ³ برÙÙ ", 37 negativeInfinity: "-ÙØ§ ÙÙØ§ÙØ©", 38 positiveInfinity: "+ÙØ§ ÙÙØ§ÙØ©", 39 currency: { 40 pattern: ["$n-","$ n"], 41 symbol: "ر.س.\u200f" 42 } 43 }, 44 calendars: { 45 standard: { 46 name: "Gregorian_Arabic", 47 firstDay: 6, 48 days: { 49 names: ["Ø§ÙØ£ØØ¯", "Ø§ÙØ¥Ø«ÙÙÙ", "Ø§ÙØ«Ùاثاء", "Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡", "Ø§ÙØ®Ù ÙØ³", "Ø§ÙØ¬Ù عة", "Ø§ÙØ³Ø¨Øª"], 50 namesAbbr: ["Ø§ÙØ£ØØ¯", "Ø§ÙØ¥Ø«ÙÙÙ", "Ø§ÙØ«Ùاثاء", "Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡", "Ø§ÙØ®Ù ÙØ³", "Ø§ÙØ¬Ù عة", "Ø§ÙØ³Ø¨Øª"], 51 namesShort: ["Ø", "Ù", "Ø«", "ر", "Ø®", "ج", "س"] 52 }, 53 months: { 54 names: ["ÙÙØ§Ùر", "ÙØ¨Ø±Ø§Ùر", "٠ارس", "ابرÙÙ", "٠اÙÙ", "ÙÙÙÙÙ", "ÙÙÙÙÙ", "اغسطس", "سبت٠بر", "Ø§ÙØªÙبر", "ÙÙÙ٠بر", "Ø¯ÙØ³Ù بر", ""], 55 namesAbbr: ["ÙÙØ§Ùر", "ÙØ¨Ø±Ø§Ùر", "٠ارس", "ابرÙÙ", "٠اÙÙ", "ÙÙÙÙÙ", "ÙÙÙÙÙ", "اغسطس", "سبت٠بر", "Ø§ÙØªÙبر", "ÙÙÙ٠بر", "Ø¯ÙØ³Ù بر", ""] 56 }, 57 AM: ["ص", "ص", "ص"], 58 PM: ["Ù ", "Ù ", "Ù "], 59 eras: [{ "name": "Ù ", "start": null, "offset": 0 }], 60 patterns: { 61 d: "MM/dd/yyyy", 62 t: "hh:mm tt", 63 T: "hh:mm:ss tt", 64 f: "dddd, MMMM dd, yyyy hh:mm tt", 65 F: "dddd, MMMM dd, yyyy hh:mm:ss tt" 66 } 67 }, 68 Hijri: { 69 name: "Hijri", 70 firstDay: 6, 71 days: { 72 names: ["Ø§ÙØ£ØØ¯","Ø§ÙØ¥Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª"], 73 namesAbbr: ["Ø§ÙØ£ØØ¯","Ø§ÙØ¥Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª"], 74 namesShort: ["Ø","Ù","Ø«","ر","Ø®","ج","س"] 75 }, 76 months: { 77 names: ["Ù ØØ±Ù ","ØµÙØ±","Ø±Ø¨ÙØ¹Â Ø§ÙØ£ÙÙ","Ø±Ø¨ÙØ¹Â Ø§ÙØ«Ø§ÙÙ","ج٠ادÙÂ Ø§ÙØ£ÙÙÙ","ج٠ادÙÂ Ø§ÙØ«Ø§ÙÙØ©","رجب","شعباÙ","ر٠ضاÙ","Ø´ÙØ§Ù","ذÙ اÙÙØ¹Ø¯Ø©","ذÙÂ Ø§ÙØØ¬Ø©",""], 78 namesAbbr: ["Ù ØØ±Ù ","ØµÙØ±","Ø±Ø¨ÙØ¹Â Ø§ÙØ£ÙÙ","Ø±Ø¨ÙØ¹Â Ø§ÙØ«Ø§ÙÙ","ج٠ادÙÂ Ø§ÙØ£ÙÙÙ","ج٠ادÙÂ Ø§ÙØ«Ø§ÙÙØ©","رجب","شعباÙ","ر٠ضاÙ","Ø´ÙØ§Ù","ذÙ اÙÙØ¹Ø¯Ø©","ذÙÂ Ø§ÙØØ¬Ø©",""] 79 }, 80 AM: ["ص","ص","ص"], 81 PM: ["Ù ","Ù ","Ù "], 82 eras: [{"name":"بعد اÙÙØ¬Ø±Ø©","start":null,"offset":0}], 83 twoDigitYearMax: 1451, 84 patterns: { 85 d: "dd/MM/yy", 86 D: "dd/MM/yyyy", 87 t: "hh:mm tt", 88 T: "hh:mm:ss tt", 89 f: "dd/MM/yyyy hh:mm tt", 90 F: "dd/MM/yyyy hh:mm:ss tt", 91 M: "dd MMMM" 92 }, 93 convert: { 94 // Adapted to Script from System.Globalization.HijriCalendar 95 ticks1970: 62135596800000, 96 // number of days leading up to each month 97 monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], 98 minDate: -42521673600000, 99 maxDate: 253402300799999, 100 // The number of days to add or subtract from the calendar to accommodate the variances 101 // in the start and the end of Ramadan and to accommodate the date difference between 102 // countries/regions. May be dynamically adjusted based on user preference, but should 103 // remain in the range of -2 to 2, inclusive. 104 hijriAdjustment: 0, 105 toGregorian: function(hyear, hmonth, hday) { 106 var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; 107 // 86400000 = ticks per day 108 var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); 109 // adjust for timezone, because we are interested in the gregorian date for the same timezone 110 // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base 111 // date in the current timezone. 112 gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); 113 return gdate; 114 }, 115 fromGregorian: function(gdate) { 116 if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; 117 var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, 118 daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; 119 // very particular formula determined by someone smart, adapted from the server-side implementation. 120 // it approximates the hijri year. 121 var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, 122 absDays = this.daysToYear(hyear), 123 daysInYear = this.isLeapYear(hyear) ? 355 : 354; 124 // hyear is just approximate, it may need adjustment up or down by 1. 125 if (daysSinceJan0101 < absDays) { 126 hyear--; 127 absDays -= daysInYear; 128 } 129 else if (daysSinceJan0101 === absDays) { 130 hyear--; 131 absDays = this.daysToYear(hyear); 132 } 133 else { 134 if (daysSinceJan0101 > (absDays + daysInYear)) { 135 absDays += daysInYear; 136 hyear++; 137 } 138 } 139 // determine month by looking at how many days into the hyear we are 140 // monthDays contains the number of days up to each month. 141 hmonth = 0; 142 var daysIntoYear = daysSinceJan0101 - absDays; 143 while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { 144 hmonth++; 145 } 146 hmonth--; 147 hday = daysIntoYear - this.monthDays[hmonth]; 148 return [hyear, hmonth, hday]; 149 }, 150 daysToYear: function(year) { 151 // calculates how many days since Jan 1, 0001 152 var yearsToYear30 = Math.floor((year - 1) / 30) * 30, 153 yearsInto30 = year - yearsToYear30 - 1, 154 days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; 155 while (yearsInto30 > 0) { 156 days += (this.isLeapYear(yearsInto30) ? 355 : 354); 157 yearsInto30--; 158 } 159 return days; 160 }, 161 isLeapYear: function(year) { 162 return ((((year * 11) + 14) % 30) < 11); 163 } 164 } 165 }, 166 Gregorian_MiddleEastFrench: { 167 name: "Gregorian_MiddleEastFrench", 168 firstDay: 6, 169 days: { 170 names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], 171 namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], 172 namesShort: ["di","lu","ma","me","je","ve","sa"] 173 }, 174 months: { 175 names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], 176 namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] 177 }, 178 AM: ["ص","ص","ص"], 179 PM: ["Ù ","Ù ","Ù "], 180 eras: [{"name":"ap. J.-C.","start":null,"offset":0}], 181 patterns: {
182 d: "MM/dd/yyyy", 183 t: "hh:mm tt", 184 T: "hh:mm:ss tt", 185 f: "dddd, MMMM dd, yyyy hh:mm tt", 186 F: "dddd, MMMM dd, yyyy hh:mm:ss tt", 187 M: "dd MMMM" 188 } 189 }, 190 Gregorian_Arabic: { 191 name: "Gregorian_Arabic", 192 firstDay: 6, 193 days: { 194 names: ["Ø§ÙØ£ØØ¯","Ø§ÙØ¥Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª"], 195 namesAbbr: ["Ø§ÙØ£ØØ¯","Ø§ÙØ¥Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª"], 196 namesShort: ["Ø","Ù","Ø«","ر","Ø®","ج","س"] 197 }, 198 months: { 199 names: ["ÙÙØ§Ùر","ÙØ¨Ø±Ø§Ùر","٠ارس","ابرÙÙ","٠اÙÙ","ÙÙÙÙÙ","ÙÙÙÙÙ","اغسطس","سبت٠بر","Ø§ÙØªÙبر","ÙÙÙ٠بر","Ø¯ÙØ³Ù بر",""], 200 namesAbbr: ["ÙÙØ§Ùر","ÙØ¨Ø±Ø§Ùر","٠ارس","ابرÙÙ","٠اÙÙ","ÙÙÙÙÙ","ÙÙÙÙÙ","اغسطس","سبت٠بر","Ø§ÙØªÙبر","ÙÙÙ٠بر","Ø¯ÙØ³Ù بر",""] 201 }, 202 AM: ["ص","ص","ص"], 203 PM: ["Ù ","Ù ","Ù "], 204 eras: [{"name":"Ù ","start":null,"offset":0}], 205 patterns: { 206 d: "MM/dd/yyyy", 207 t: "hh:mm tt", 208 T: "hh:mm:ss tt", 209 f: "dddd, MMMM dd, yyyy hh:mm tt", 210 F: "dddd, MMMM dd, yyyy hh:mm:ss tt" 211 } 212 }, 213 Gregorian_Localized: { 214 name: "Gregorian_Localized", 215 firstDay: 6, 216 days: { 217 names: ["Ø§ÙØ£ØØ¯","Ø§ÙØ¥Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª"], 218 namesAbbr: ["Ø§ÙØ£ØØ¯","Ø§ÙØ¥Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª"], 219 namesShort: ["Ø","Ù","Ø«","ر","Ø®","ج","س"] 220 }, 221 months: { 222 names: ["ÙÙØ§Ùر","ÙØ¨Ø±Ø§Ùر","٠ارس","أبرÙÙ","٠اÙÙ","ÙÙÙÙÙ","ÙÙÙÙÙ","أغسطس","سبت٠بر","Ø£ÙØªÙبر","ÙÙÙ٠بر","Ø¯ÙØ³Ù بر",""], 223 namesAbbr: ["ÙÙØ§Ùر","ÙØ¨Ø±Ø§Ùر","٠ارس","أبرÙÙ","٠اÙÙ","ÙÙÙÙÙ","ÙÙÙÙÙ","أغسطس","سبت٠بر","Ø£ÙØªÙبر","ÙÙÙ٠بر","Ø¯ÙØ³Ù بر",""] 224 }, 225 AM: ["ص","ص","ص"], 226 PM: ["Ù ","Ù ","Ù "], 227 patterns: { 228 d: "dd/MM/yyyy", 229 D: "dd MMMM, yyyy", 230 t: "hh:mm tt", 231 T: "hh:mm:ss tt", 232 f: "dd MMMM, yyyy hh:mm tt", 233 F: "dd MMMM, yyyy hh:mm:ss tt", 234 M: "dd MMMM" 235 } 236 }, 237 Gregorian_TransliteratedFrench: { 238 name: "Gregorian_TransliteratedFrench", 239 firstDay: 6, 240 days: { 241 names: ["Ø§ÙØ£ØØ¯","Ø§ÙØ¥Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª"], 242 namesAbbr: ["Ø§ÙØ£ØØ¯","Ø§ÙØ¥Ø«ÙÙÙ","Ø§ÙØ«Ùاثاء","Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡","Ø§ÙØ®Ù ÙØ³","Ø§ÙØ¬Ù عة","Ø§ÙØ³Ø¨Øª"], 243 namesShort: ["Ø","Ù","Ø«","ر","Ø®","ج","س"] 244 }, 245 months: { 246 names: ["جاÙÙÙÙÙ","ÙÙÙØ±ÙÙÙ","٠ارس","Ø£ÙØ±ÙÙ","Ù Ù","Ø¬ÙØ§Ù","جÙÙÙÙ","Ø£ÙØª","سبت٠بر","Ø§ÙØªÙبر","ÙÙÙ٠بر","Ø¯ÙØ³Ù بر",""], 247 namesAbbr: ["جاÙÙÙÙÙ","ÙÙÙØ±ÙÙÙ","٠ارس","Ø£ÙØ±ÙÙ","Ù Ù","Ø¬ÙØ§Ù","جÙÙÙÙ","Ø£ÙØª","سبت٠بر","Ø§ÙØªÙبر","ÙÙÙ٠بر","Ø¯ÙØ³Ù بر",""] 248 }, 249 AM: ["ص","ص","ص"], 250 PM: ["Ù ","Ù ","Ù "], 251 eras: [{"name":"Ù ","start":null,"offset":0}], 252 patterns: { 253 d: "MM/dd/yyyy", 254 t: "hh:mm tt", 255 T: "hh:mm:ss tt", 256 f: "dddd, MMMM dd, yyyy hh:mm tt", 257 F: "dddd, MMMM dd, yyyy hh:mm:ss tt" 258 } 259 }, 260 UmAlQura: { //default calendar in ar-SA in msdn but its not gregorian so changed standard to Gregorian_Arabic 261 name: "UmAlQura", 262 firstDay: 6, 263 days: { 264 names: ["Ø§ÙØ£ØØ¯", "Ø§ÙØ¥Ø«ÙÙÙ", "Ø§ÙØ«Ùاثاء", "Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡", "Ø§ÙØ®Ù ÙØ³", "Ø§ÙØ¬Ù عة", "Ø§ÙØ³Ø¨Øª"], 265 namesAbbr: ["Ø§ÙØ£ØØ¯", "Ø§ÙØ¥Ø«ÙÙÙ", "Ø§ÙØ«Ùاثاء", "Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡", "Ø§ÙØ®Ù ÙØ³", "Ø§ÙØ¬Ù عة", "Ø§ÙØ³Ø¨Øª"], 266 namesShort: ["Ø", "Ù", "Ø«", "ر", "Ø®", "ج", "س"] 267 }, 268 months: { 269 names: ["Ù ØØ±Ù ", "ØµÙØ±", "Ø±Ø¨ÙØ¹Â Ø§ÙØ£ÙÙ", "Ø±Ø¨ÙØ¹Â Ø§ÙØ«Ø§ÙÙ", "ج٠ادÙÂ Ø§ÙØ£ÙÙÙ", "ج٠ادÙÂ Ø§ÙØ«Ø§ÙÙØ©", "رجب", "شعباÙ", "ر٠ضاÙ", "Ø´ÙØ§Ù", "ذÙ اÙÙØ¹Ø¯Ø©", "ذÙÂ Ø§ÙØØ¬Ø©", ""], 270 namesAbbr: ["Ù ØØ±Ù ", "ØµÙØ±", "Ø±Ø¨ÙØ¹Â Ø§ÙØ£ÙÙ", "Ø±Ø¨ÙØ¹Â Ø§ÙØ«Ø§ÙÙ", "ج٠ادÙÂ Ø§ÙØ£ÙÙÙ", "ج٠ادÙÂ Ø§ÙØ«Ø§ÙÙØ©", "رجب", "شعباÙ", "ر٠ضاÙ", "Ø´ÙØ§Ù", "ذÙ اÙÙØ¹Ø¯Ø©", "ذÙÂ Ø§ÙØØ¬Ø©", ""] 271 }, 272 AM: ["ص", "ص", "ص"], 273 PM: ["Ù ", "Ù ", "Ù "], 274 eras: [{ "name": "بعد اÙÙØ¬Ø±Ø©", "start": null, "offset": 0 }], 275 twoDigitYearMax: 1451, 276 patterns: { 277 d: "dd/MM/yy", 278 D: "dd/MMMM/yyyy", 279 t: "hh:mm tt", 280 T: "hh:mm:ss tt", 281 f: "dd/MMMM/yyyy hh:mm tt", 282 F: "dd/MMMM/yyyy hh:mm:ss tt", 283 M: "dd MMMM" 284 },
285 convert: { 286 _yearInfo: [ 287 // MonthLengthFlags, Gregorian Date 288 [746, -2198707200000], 289 [1769, -2168121600000], 290 [3794, -2137449600000], 291 [3748, -2106777600000], 292 [3402, -2076192000000], 293 [2710, -2045606400000], 294 [1334, -2015020800000], 295 [2741, -1984435200000], 296 [3498, -1953763200000], 297 [2980, -1923091200000], 298 [2889, -1892505600000], 299 [2707, -1861920000000], 300 [1323, -1831334400000], 301 [2647, -1800748800000], 302 [1206, -1770076800000], 303 [2741, -1739491200000], 304 [1450, -1708819200000], 305 [3413, -1678233600000], 306 [3370, -1647561600000], 307 [2646, -1616976000000], 308 [1198, -1586390400000], 309 [2397, -1555804800000], 310 [748, -1525132800000], 311 [1749, -1494547200000], 312 [1706, -1463875200000], 313 [1365, -1433289600000], 314 [1195, -1402704000000], 315 [2395, -1372118400000], 316 [698, -1341446400000], 317 [1397, -1310860800000], 318 [2994, -1280188800000], 319 [1892, -1249516800000], 320 [1865, -1218931200000], 321 [1621, -1188345600000], 322 [683, -1157760000000], 323 [1371, -1127174400000], 324 [2778, -1096502400000], 325 [1748, -1065830400000], 326 [3785, -1035244800000], 327 [3474, -1004572800000], 328 [3365, -973987200000], 329 [2637, -943401600000], 330 [685, -912816000000], 331 [1389, -882230400000], 332 [2922, -851558400000], 333 [2898, -820886400000], 334 [2725, -790300800000], 335 [2635, -759715200000], 336 [1175, -729129600000], 337 [2359, -698544000000], 338 [694, -667872000000], 339 [1397, -637286400000], 340 [3434, -606614400000], 341 [3410, -575942400000], 342 [2710, -545356800000], 343 [2349, -514771200000], 344 [605, -484185600000], 345 [1245, -453600000000], 346 [2778, -422928000000], 347 [1492, -392256000000], 348 [3497, -361670400000], 349 [3410, -330998400000], 350 [2730, -300412800000], 351 [1238, -269827200000], 352 [2486, -239241600000], 353 [884, -208569600000], 354 [1897, -177984000000], 355 [1874, -147312000000], 356 [1701, -116726400000], 357 [1355, -86140800000], 358 [2731, -55555200000], 359 [1370, -24883200000], 360 [2773, 5702400000], 361 [3538, 36374400000], 362 [3492, 67046400000], 363 [3401, 97632000000], 364 [2709, 128217600000], 365 [1325, 158803200000], 366 [2653, 189388800000], 367 [1370, 220060800000], 368 [2773, 250646400000], 369 [1706, 281318400000], 370 [1685, 311904000000], 371 [1323, 342489600000], 372 [2647, 373075200000], 373 [1198, 403747200000], 374 [2422, 434332800000], 375 [1388, 465004800000], 376 [2901, 495590400000], 377 [2730, 526262400000], 378 [2645, 556848000000], 379 [1197, 587433600000], 380 [2397, 618019200000], 381 [730, 648691200000], 382 [1497, 679276800000], 383 [3506, 709948800000], 384 [2980, 740620800000], 385 [2890, 771206400000], 386 [2645, 801792000000], 387 [693, 832377600000], 388 [1397, 862963200000], 389 [2922, 893635200000], 390 [3026, 924307200000], 391 [3012, 954979200000], 392 [2953, 985564800000], 393 [2709, 1016150400000], 394 [1325, 1046736000000], 395 [1453, 1077321600000], 396 [2922, 1107993600000], 397 [1748, 1138665600000], 398 [3529, 1169251200000], 399 [3474, 1199923200000], 400 [2726, 1230508800000], 401 [2390, 1261094400000], 402 [686, 1291680000000], 403 [1389, 1322265600000], 404 [874, 1352937600000], 405 [2901, 1383523200000], 406 [2730, 1414195200000], 407 [2381, 1444780800000], 408 [1181, 1475366400000], 409 [2397, 1505952000000], 410 [698, 1536624000000], 411 [1461, 1567209600000], 412 [1450, 1597881600000], 413 [3413, 1628467200000], 414 [2714, 1659139200000], 415 [2350, 1689724800000], 416 [622, 1720310400000], 417 [1373, 1750896000000], 418 [2778, 1781568000000], 419 [1748, 1812240000000], 420 [1701, 1842825600000], 421 [0, 1873411200000] 422 ], 423 minDate: -2198707200000, 424 maxDate: 1873411199999, 425 toGregorian: function (hyear, hmonth, hday) { 426 var days = hday - 1, 427 gyear = hyear - 1318; 428 if (gyear < 0 || gyear >= this._yearInfo.length) return null; 429 var info = this._yearInfo[gyear], 430 gdate = new Date(info[1]), 431 monthLength = info[0]; 432 // Date's ticks in javascript are always from the GMT time, 433 // but we are interested in the gregorian date in the same timezone, 434 // not what the gregorian date was at GMT time, so we adjust for the offset. 435 gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); 436 for (var i = 0; i < hmonth; i++) { 437 days += 29 + (monthLength & 1); 438 monthLength = monthLength >> 1; 439 } 440 gdate.setDate(gdate.getDate() + days); 441 return gdate; 442 }, 443 fromGregorian: function (gdate) { 444 // Date's ticks in javascript are always from the GMT time, 445 // but we are interested in the hijri date in the same timezone, 446 // not what the hijri date was at GMT time, so we adjust for the offset. 447 var ticks = gdate - gdate.getTimezoneOffset() * 60000; 448 if (ticks < this.minDate || ticks > this.maxDate) return null; 449 var hyear = 0, 450 hmonth = 1; 451 // find the earliest gregorian date in the array that is greater than or equal to the given date 452 while (ticks > this._yearInfo[++hyear][1]) { } 453 if (ticks !== this._yearInfo[hyear][1]) { 454 hyear--; 455 } 456 var info = this._yearInfo[hyear], 457 // how many days has it been since the date we found in the array? 458 // 86400000 = ticks per day 459 days = Math.floor((ticks - info[1]) / 86400000), 460 monthLength = info[0]; 461 hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N 462 // now increment day/month based on the total days, considering 463 // how many days are in each month. We cannot run past the year 464 // mark since we would have found a different array entry in that case. 465 var daysInMonth = 29 + (monthLength & 1); 466 while (days >= daysInMonth) { 467 days -= daysInMonth; 468 monthLength = monthLength >> 1; 469 daysInMonth = 29 + (monthLength & 1); 470 hmonth++; 471 } 472 // remaining days is less than is in one month, thus is the day of the month we landed on 473 // hmonth-1 because in javascript months are zero based, stay consistent with that. 474 return [hyear, hmonth - 1, days + 1]; 475 } 476 } 477 } 478 } 479}); 480 481}( this ));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.