コード例 #1
0
        public static DateTimeHelper Parse(string input, DateTimeHelperCalendars calendarSource = DateTimeHelperCalendars.Persian, DateTimeHelperCalendars calendarTarget = DateTimeHelperCalendars.Gregorian, char seperator = '/')
        {
            DateTimeHelper r = null;

            //
            string[] parts = input.Split(new char[] { seperator });
            if (parts.Length == 3)
            {
                int y, m, d;
                try
                {
                    y = int.Parse(parts[0]);
                    m = int.Parse(parts[1]);
                    d = int.Parse(parts[2]);
                    if (IsValidDate(calendarSource, y, m, d))
                    {
                        r = new DateTimeHelper(calendarTarget, calendarSource, y, m, d);
                    }
                }
                catch (Exception)
                {
                }
            }
            //
            return(r);
        }
コード例 #2
0
        public DateTimeHelper(DateTimeHelperCalendars calendarTarget, DateTime?sourceDate, DateTimeKind?targetTimeKind)
        {
            _Calendar = calendarTarget;
            _DateTime = sourceDate;
            if (_DateTime != null && targetTimeKind != null)
            {
                switch (targetTimeKind.Value)
                {
                case DateTimeKind.Local:
                    _DateTime = _DateTime.Value.ToLocalTime();
                    break;

                case DateTimeKind.Unspecified:
                    break;

                case DateTimeKind.Utc:
                    _DateTime = _DateTime.Value.ToUniversalTime();
                    break;

                default:
                    break;
                }
            }
            InitializeMe();
        }
コード例 #3
0
        /// <summary>
        /// Gets .Net Calendar equivalence of MaDateTimeCalendars enum.
        /// </summary>
        /// <param name="calendar1">Enum value to get its .Net Calendar equivalence.</param>
        /// <returns>Returns .Net Calendar equivalence of MaDateTimeCalendars enum.</returns>
        public static System.Globalization.Calendar GetCalendar(DateTimeHelperCalendars calendar1)  //return the source calender
        {
            switch (calendar1)
            {
            case DateTimeHelperCalendars.Gregorian:
                return(cGregorian);

            case DateTimeHelperCalendars.Persian:
            default:
                return(cPersian);
            }
        }
コード例 #4
0
        /// <summary>
        /// Deterines if the input date is valid in the target calendar type.
        /// </summary>
        /// <param name="calendar1">Target calendar to check input date in that calendar.</param>
        /// <param name="year">Year of input date to check.</param>
        /// <param name="month">Month of input date to check.</param>
        /// <param name="day">Day of input date to check.</param>
        /// <returns>True if valid, false if not valid.</returns>
        public static bool IsValidDate(DateTimeHelperCalendars calendar1, int year, int month, int day)   //check if the date time is invalid
        {
            System.Globalization.Calendar c1 = GetCalendar(calendar1);
            bool r = false;
            int  temp1;

            if (year <= c1.MaxSupportedDateTime.Year && year >= c1.MinSupportedDateTime.Year)
            {
                temp1 = c1.GetMonthsInYear(year);
                if (month >= 1 && month <= temp1)
                {
                    temp1 = c1.GetDaysInMonth(year, month);
                    if (day >= 1 && day <= temp1)
                    {
                        r = true;
                    }
                }
            }
            return(r);
        }
コード例 #5
0
        public DateTimeHelper(DateTimeHelperCalendars calendarTarget, DateTimeHelperCalendars calendarSource, int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind)
        {
            _Calendar = calendarTarget;
            switch (calendarSource)    //Put the amounts into source calender and set it as a default calender
            {
            case DateTimeHelperCalendars.Gregorian:
                _DateTime = cGregorian.ToDateTime(year, month, day, hour, minute, second, millisecond);
                _DateTime = System.DateTime.SpecifyKind(_DateTime.Value, kind);
                //_DateTime = new DateTime(year, month, day, hour, minute, second, millisecond, cGregorian, kind);
                break;

            case DateTimeHelperCalendars.Persian:
            default:
                _DateTime = cPersian.ToDateTime(year, month, day, hour, minute, second, millisecond);
                _DateTime = System.DateTime.SpecifyKind(_DateTime.Value, kind);
                //_DateTime = new DateTime(year, month, day, hour, minute, second, millisecond, cPersian, kind);
                break;
            }
            InitializeMe();
        }
コード例 #6
0
        /// <summary>
        /// Exchanges the input 'day of the week' into alphabetical name using target calendar.
        /// </summary>
        /// <param name="calendar">Target calendar.</param>
        /// <param name="dayOfWeek">'day of week' to exchange.</param>
        /// <returns>Exchanged alphabetical name using target calendar.</returns>
        public static string GetDayOfWeekName(DateTimeHelperCalendars calendar, DayOfWeek dayOfWeek)
        {
            switch (calendar)
            {
            case DateTimeHelperCalendars.Gregorian:
                return(dayOfWeek.ToString());

            case DateTimeHelperCalendars.Persian:
            default:
                switch (dayOfWeek)
                {
                case System.DayOfWeek.Friday:
                    return("جمعه");

                case System.DayOfWeek.Monday:
                    return("دوشنبه");

                case System.DayOfWeek.Saturday:
                    return("شنبه");

                case System.DayOfWeek.Sunday:
                    return("یكشنبه");

                case System.DayOfWeek.Thursday:
                    return("پنجشنبه");

                case System.DayOfWeek.Tuesday:
                    return("سه‌شنبه");

                case System.DayOfWeek.Wednesday:
                    return("چهارشنبه");

                default:
                    return("");
                }
            }
        }
コード例 #7
0
 public DateTimeHelper(DateTimeHelperCalendars calendarTarget, DateTime?sourceDate)
     : this(calendarTarget, sourceDate, null)
 {
 }
コード例 #8
0
        /// <summary>
        /// Exchanges the input month number into alphabetical name using target calendar.
        /// </summary>
        /// <param name="calendar">Target calendar.</param>
        /// <param name="month">Month number to exchange.</param>
        /// <returns>Exchanged alphabetical name using target calendar.</returns>
        public static string GetMonthName(DateTimeHelperCalendars calendar, int month)    //exchange the month number into alphabetical name
        {
            switch (calendar)
            {
            case DateTimeHelperCalendars.Gregorian:
                switch (month)
                {
                case 1:
                    return("Janury");

                case 2:
                    return("February");

                case 3:
                    return("March");

                case 4:
                    return("April");

                case 5:
                    return("May");

                case 6:
                    return("June");

                case 7:
                    return("July");

                case 8:
                    return("August");

                case 9:
                    return("September");

                case 10:
                    return("October");

                case 11:
                    return("November");

                case 12:
                    return("December");

                default:
                    return("Out of bound");
                }

            case DateTimeHelperCalendars.Persian:
            default:
                switch (month)
                {
                case 1:
                    return("فروردین");

                case 2:
                    return("اردیبهشت");

                case 3:
                    return("خرداد");

                case 4:
                    return("تیر");

                case 5:
                    return("مرداد");

                case 6:
                    return("شهریور");

                case 7:
                    return("مهر");

                case 8:
                    return("آبان");

                case 9:
                    return("آذر");

                case 10:
                    return("دی");

                case 11:
                    return("بهمن");

                case 12:
                    return("اسفند");

                default:
                    return("خارج از محدوده");
                }
            }
        }
コード例 #9
0
 public DateTimeHelper(DateTimeHelperCalendars calendarTarget, DateTimeHelperCalendars calendarSource, int year, int month, int day)
     : this(calendarTarget, calendarSource, year, month, day, 0, 0, 0, 0, DateTimeKind.Unspecified)
 {
 }