123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- (function ($) {
- var JalaliDate = {
- gDaysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
- jDaysInMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]
- };
- JalaliDate.jalaliToGregorian = function (jY, jM, jD) {
- jY = parseInt(jY);
- jM = parseInt(jM);
- jD = parseInt(jD);
- var i;
- var jy = jY - 979;
- var jm = jM - 1;
- var jd = jD - 1;
- var jDayNo = 365 * jy + parseInt(jy / 33) * 8 + parseInt((jy % 33 + 3) / 4);
- for (i = 0; i < jm; ++i) {
- jDayNo += JalaliDate.jDaysInMonth[i];
- }
- jDayNo += jd;
- var gDayNo = jDayNo + 79;
- var gy = 1600 + 400 * parseInt(gDayNo / 146097);
- gDayNo = gDayNo % 146097;
- var leap = true;
- if (gDayNo >= 36525) {
- gDayNo--;
- gy += 100 * parseInt(gDayNo / 36524);
- gDayNo = gDayNo % 36524;
- if (gDayNo >= 365) {
- gDayNo++;
- } else {
- leap = false;
- }
- }
- gy += 4 * parseInt(gDayNo / 1461);
- gDayNo %= 1461;
- if (gDayNo >= 366) {
- leap = false;
- gDayNo--;
- gy += parseInt(gDayNo / 365);
- gDayNo = gDayNo % 365;
- }
- for (i = 0; gDayNo >= JalaliDate.gDaysInMonth[i] + (i == 1 && leap) ; i++) {
- gDayNo -= JalaliDate.gDaysInMonth[i] + (i == 1 && leap);
- }
- var gm = i + 1;
- var gd = gDayNo + 1;
- return [gy, gm, gd];
- };
- JalaliDate.checkDate = function (jY, jM, jD) {
- return !(jY < 0 || jY > 32767 || jM < 1 || jM > 12 || jD < 1 || jD >
- (JalaliDate.jDaysInMonth[jM - 1] + (jM == 12 && ((jY - 979) % 33 % 4) === 0)));
- };
- JalaliDate.gregorianToJalali = function (gY, gM, gD) {
- gY = parseInt(gY);
- gM = parseInt(gM);
- gD = parseInt(gD);
- var i;
- var gy = gY - 1600;
- var gm = gM - 1;
- var gd = gD - 1;
- var gDayNo = 365 * gy + parseInt((gy + 3) / 4) - parseInt((gy + 99) / 100) + parseInt((gy + 399) / 400);
- for (i = 0; i < gm; ++i) {
- gDayNo += JalaliDate.gDaysInMonth[i];
- }
- if (gm > 1 && ((gy % 4 === 0 && gy % 100 !== 0) || (gy % 400 === 0))) {
- ++gDayNo;
- }
- gDayNo += gd;
- var jDayNo = gDayNo - 79;
- var jNp = parseInt(jDayNo / 12053);
- jDayNo %= 12053;
- var jy = 979 + 33 * jNp + 4 * parseInt(jDayNo / 1461);
- jDayNo %= 1461;
- if (jDayNo >= 366) {
- jy += parseInt((jDayNo - 1) / 365);
- jDayNo = (jDayNo - 1) % 365;
- }
- for (i = 0; i < 11 && jDayNo >= JalaliDate.jDaysInMonth[i]; ++i) {
- jDayNo -= JalaliDate.jDaysInMonth[i];
- }
- var jm = i + 1;
- var jd = jDayNo + 1;
- return [jy, jm, jd];
- };
- $.mobiscroll.i18n.fa = $.extend($.mobiscroll.i18n.fa, {
- // Core
- setText: 'تاييد',
- cancelText: 'انصراف',
- clearText: 'واضح ',
- selectedText: 'منتخب',
- // Datetime component
- dateFormat: 'yy/mm/dd',
- dateOrder: 'yymmdd',
- dayNames: ['يکشنبه', 'دوشنبه', 'سهشنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],
- dayNamesShort: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],
- dayNamesMin: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],
- dayText: 'روز',
- hourText: 'ساعت',
- minuteText: 'دقيقه',
- monthNames: ['فروردين', 'ارديبهشت', 'خرداد', 'تير', 'مرداد', 'شهريور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'],
- monthNamesShort: ['فروردين', 'ارديبهشت', 'خرداد', 'تير', 'مرداد', 'شهريور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'],
- //monthNamesShort: ['Farvardin', 'Ordibehesht', 'Khordad', 'Tir', 'Mordad', 'Shahrivar', 'Mehr', 'Aban', 'Azar', 'Dey', 'Bahman', 'Esfand'],
- monthText: 'ماه',
- secText: 'ثانيه',
- timeFormat: 'HH:ii',
- timeWheels: 'HHii',
- yearText: 'سال',
- nowText: 'اکنون',
- amText: 'ب',
- pmText: 'ص',
- getYear: function (date) {
- return JalaliDate.gregorianToJalali(date.getFullYear(), (date.getMonth() + 1), date.getDate())[0];
- },
- getMonth: function (date) {
- return --JalaliDate.gregorianToJalali(date.getFullYear(), (date.getMonth() + 1), date.getDate())[1];
- },
- getDay: function (date) {
- return JalaliDate.gregorianToJalali(date.getFullYear(), (date.getMonth() + 1), date.getDate())[2];
- },
- getDate: function (y, m, d, h, i, s, u) {
- if (m < 0) {
- y += Math.floor(m / 12);
- m = 12 + m % 12;
- }
- if (m > 11) {
- y += Math.floor(m / 12);
- m = m % 12;
- }
- var gregorianDate = JalaliDate.jalaliToGregorian(y, +m + 1, d);
- return new Date(gregorianDate[0], gregorianDate[1] - 1, gregorianDate[2], h || 0, i || 0, s || 0, u || 0);
- },
- getMaxDayOfMonth: function (y, m) {
- var maxdays = 31;
- while (JalaliDate.checkDate(y, m + 1, maxdays) === false) {
- maxdays--;
- }
- return maxdays;
- },
- //getNumber: function (n) {
- // var i,
- // nums = ["۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"],
- // res = '';
- // n = n + '';
- // for (i = 0; i < n.length; i++) {
- // res += nums[+n[i]];
- // }
- // return res;
- //},
- // Calendar component
- firstDay: 6,
- rtl: true,
- dateText: 'تاریخ ',
- timeText: 'زمان ',
- calendarText: 'تقویم',
- closeText: 'نزدیک',
- // Daterange component
- fromText: 'شروع ',
- toText: 'پایان',
- // Measurement components
- wholeText: 'تمام',
- fractionText: 'کسر',
- unitText: 'واحد',
- // Time / Timespan component
- labels: ['سال', 'ماه', 'روز', 'ساعت', 'دقیقه', 'ثانیه', ''],
- labelsShort: ['سال', 'ماه', 'روز', 'ساعت', 'دقیقه', 'ثانیه', ''],
- // Timer component
- startText: 'شروع',
- stopText: 'پايان',
- resetText: 'تنظیم مجدد',
- lapText: 'Lap',
- hideText: 'پنهان کردن',
- // Listview
- backText: 'پشت',
- undoText: 'واچیدن'
- });
- })(jQuery);
|