Beispiel #1
0
        //public PersianDateTime(int year, int month, int day, int hour, int minute, int second, Calendar calendar)
        //{

        //}
        //public PersianDateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind)
        //{

        //}

        /// <summary>
        ///
        /// </summary>
        /// <param name="date"></param>
        public PersianDateTime(DateTime date)
        {
            var cc = new PersianCalendar();

            if (date >= DateTime.Parse("0622/3/21"))
            {
                Year        = cc.GetYear(date);
                Month       = cc.GetMonth(date);
                Day         = cc.GetDayOfMonth(date);
                Hour        = cc.GetHour(date);
                Minute      = cc.GetMinute(date);
                Second      = cc.GetSecond(date);
                Millisecond = (int)cc.GetMilliseconds(date);
            }
            else
            {
                Year        = 1;
                Month       = 1;
                Day         = 1;
                Hour        = 0;
                Minute      = 0;
                Second      = 0;
                Millisecond = 0;
            }
        }
Beispiel #2
0
 public void FromDateTime(DateTime date)
 {
     Day        = PersianCalendar.GetDayOfMonth(date);
     Month      = PersianCalendar.GetMonth(date);
     Year       = PersianCalendar.GetYear(date);
     Hour       = PersianCalendar.GetHour(date);
     Minute     = PersianCalendar.GetMinute(date);
     Second     = PersianCalendar.GetSecond(date);
     Milisecond = PersianCalendar.GetMilliseconds(date);
 }
    public static void Main()
    {
        Console.WriteLine("Using the Persian Calendar:");
        PersianCalendar persian = new PersianCalendar();
        DateTime        date1   = new DateTime(1389, 5, 27, 16, 32, 18, 500,
                                               persian, DateTimeKind.Local);

        Console.WriteLine("{0:M/dd/yyyy h:mm:ss.fff tt} {1}", date1, date1.Kind);
        Console.WriteLine("{0}/{1}/{2} {3}{8}{4:D2}{8}{5:D2}.{6:G3} {7}\n",
                          persian.GetMonth(date1),
                          persian.GetDayOfMonth(date1),
                          persian.GetYear(date1),
                          persian.GetHour(date1),
                          persian.GetMinute(date1),
                          persian.GetSecond(date1),
                          persian.GetMilliseconds(date1),
                          date1.Kind,
                          DateTimeFormatInfo.CurrentInfo.TimeSeparator);

        Console.WriteLine("Using the Hijri Calendar:");
        // Get current culture so it can later be restored.
        CultureInfo dftCulture = Thread.CurrentThread.CurrentCulture;

        // Define strings for use in composite formatting.
        string dFormat;
        string fmtString;
        // Define Hijri calendar.
        HijriCalendar hijri = new HijriCalendar();

        // Make ar-SY the current culture and Hijri the current calendar.
        Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-SY");
        CultureInfo current = CultureInfo.CurrentCulture;

        current.DateTimeFormat.Calendar = hijri;
        dFormat = current.DateTimeFormat.ShortDatePattern;
        // Ensure year is displayed as four digits.
        dFormat   = Regex.Replace(dFormat, "/yy$", "/yyyy") + " H:mm:ss.fff";
        fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "} {3}";
        DateTime date2 = new DateTime(1431, 9, 9, 16, 32, 18, 500,
                                      hijri, DateTimeKind.Local);

        Console.WriteLine(fmtString, current, GetCalendarName(hijri),
                          date2, date2.Kind);

        // Restore previous culture.
        Thread.CurrentThread.CurrentCulture = dftCulture;
        dFormat   = DateTimeFormatInfo.CurrentInfo.ShortDatePattern + " H:mm:ss.fff";
        fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "} {3}";
        Console.WriteLine(fmtString,
                          CultureInfo.CurrentCulture,
                          GetCalendarName(CultureInfo.CurrentCulture.Calendar),
                          date2, date2.Kind);
    }
Beispiel #4
0
        /// <summary>
        /// تاریخ میلادی به تاریخ و زمان به زبان فارسی
        /// </summary>
        /// <param name="input">تاریخ میلادی</param>
        /// <returns>مثال 1395-11-9 11:20:34</returns>
        public static string ToPersianDateTimeString(this DateTime input)
        {
            PersianCalendar p            = new PersianCalendar();
            int             Year         = p.GetYear(input);
            int             Month        = p.GetMonth(input);
            int             Day          = p.GetDayOfMonth(input);
            int             Hour         = p.GetHour(input);
            int             Minute       = p.GetMinute(input);
            int             Second       = p.GetSecond(input);
            double          Milliseconds = p.GetMilliseconds(input);

            return($"{Year}-{Month}-{Day} {Hour}:{Minute}:{Second}.{Milliseconds}");
        }
Beispiel #5
0
        public static String ToJalaliDateTime(this DateTime dateTime)
        {
            PersianCalendar pc     = new PersianCalendar();
            string          result = String.Format("{2}/{1}/{0} {3}:{4}:{5}.{6}",
                                                   pc.GetYear(dateTime),
                                                   pc.GetMonth(dateTime).ToString().PadLeft(2, '0'),
                                                   pc.GetDayOfMonth(dateTime).ToString().PadLeft(2, '0'),
                                                   pc.GetHour(dateTime).ToString().PadLeft(2, '0'),
                                                   pc.GetMinute(dateTime).ToString().PadLeft(2, '0'),
                                                   pc.GetSecond(dateTime).ToString().PadLeft(2, '0'),
                                                   pc.GetMilliseconds(dateTime).ToString().PadLeft(3, '0')
                                                   );

            return(result);
        }
Beispiel #6
0
        public static PersianDate ToPersianDate(DateTime date)
        {
            PersianCalendar p = new PersianCalendar();

            return(new PersianDate
            {
                Day = p.GetDayOfMonth(date),
                Month = p.GetMonth(date),
                Year = p.GetYear(date),

                Hour = p.GetHour(date),
                Minute = p.GetMinute(date),
                Second = p.GetSecond(date),
                Millisecond = p.GetMilliseconds(date)
            });
        }
Beispiel #7
0
        /// <summary>
        /// نام روز هفته در تاریخ شمسی
        /// </summary>
        /// <param name="input">تاریخ میلادی</param>
        /// <returns>مثال : شنبه</returns>
        public static string ToShamsiDayName(this DateTime input)
        {
            PersianCalendar p            = new PersianCalendar();
            int             Year         = p.GetYear(input);
            int             Month        = p.GetMonth(input);
            int             Day          = p.GetDayOfMonth(input);
            int             Hour         = p.GetHour(input);
            int             Minute       = p.GetMinute(input);
            int             Second       = p.GetSecond(input);
            double          Milliseconds = p.GetMilliseconds(input);
            string          DayName      = "";

            switch (input.DayOfWeek)
            {
            case DayOfWeek.Sunday:
                DayName = "یکشنبه";
                break;

            case DayOfWeek.Monday:
                DayName = "دوشنبه";
                break;

            case DayOfWeek.Tuesday:
                DayName = "سه شنبه";
                break;

            case DayOfWeek.Wednesday:
                DayName = "چهارشنبه";
                break;

            case DayOfWeek.Thursday:
                DayName = "پنج شنبه";
                break;

            case DayOfWeek.Friday:
                DayName = "جمعه";
                break;

            case DayOfWeek.Saturday:
                DayName = "شنبه";
                break;

            default:
                break;
            }
            return(DayName);
        }
 private void CommonConstructor(DateTime dateTime)
 {
     this.dateTime        = dateTime;
     this.Year            = persianCalendar.GetYear(dateTime);
     this.Month           = persianCalendar.GetMonth(dateTime);
     this.Day             = persianCalendar.GetDayOfMonth(dateTime);
     this.Hour            = persianCalendar.GetHour(dateTime);
     this.Minute          = persianCalendar.GetMinute(dateTime);
     this.Second          = persianCalendar.GetSecond(dateTime);
     this.Millisecond     = Convert.ToInt32(persianCalendar.GetMilliseconds(dateTime));
     this.HijriDate       = new HijriDate();
     this.HijriDate.Year  = hijri.GetYear(this.dateTime);
     this.HijriDate.Month = hijri.GetMonth(this.dateTime);
     this.HijriDate.Day   = hijri.GetDayOfMonth(this.dateTime);
     this.DateMetaDatas   = HoliDaysData.Instance.GetMetaDataByDateTime(this.dateTime);
     this.IsHoliDay       = this.dateTime.DayOfWeek == System.DayOfWeek.Friday;
     foreach (var item in DateMetaDatas)
     {
         this.IsHoliDay = this.IsHoliDay || item.IsHoliDay || this.dateTime.DayOfWeek == System.DayOfWeek.Friday;
     }
 }
Beispiel #9
0
    public void ConvertToday()
    {
        // <Snippet2>
        // Instantiate a PersianCalendar object
        PersianCalendar pc = new PersianCalendar();

        // Define a Gregorian date of 3/21/2007 12:47:15
        DateTime gregorianDate = new DateTime(2007, 3, 21, 00, 47, 15);

        Console.WriteLine("The Gregorian calendar date is {0:G}", gregorianDate);
        // Convert the Gregorian date to its equivalent date in the Persian calendar
        Console.WriteLine("The Persian calendar date is {0}/{1}/{2} {3}:{4}:{5}.",
                          pc.GetMonth(gregorianDate),
                          pc.GetDayOfMonth(gregorianDate),
                          pc.GetYear(gregorianDate),
                          pc.GetHour(gregorianDate),
                          pc.GetMinute(gregorianDate),
                          pc.GetSecond(gregorianDate));
        // Convert the Persian calendar date back to the Gregorian calendar date
        DateTime fromPersianDate = pc.ToDateTime(
            pc.GetYear(gregorianDate),
            pc.GetMonth(gregorianDate),
            pc.GetDayOfMonth(gregorianDate),
            pc.GetHour(gregorianDate),
            pc.GetMinute(gregorianDate),
            pc.GetSecond(gregorianDate),
            (int)pc.GetMilliseconds(gregorianDate),
            PersianCalendar.PersianEra);

        Console.WriteLine("The converted Gregorian calendar date is {0:G}", fromPersianDate);

        // The code displays the following output to the console:
        //
        //     The Gregorian calendar date is 3/21/2007 12:47:15 AM
        //     The Persian calendar date is 1/1/1386 0:47:15.
        //     The converted Gregorian calendar date is 3/21/2007 12:47:15 AM
        // </Snippet2>
    }
Beispiel #10
0
        private void Initial(DateTime datetime)
        {
            dateTime    = datetime;
            Year        = persianCalendar.GetYear(datetime);
            Month       = persianCalendar.GetMonth(datetime);
            Day         = persianCalendar.GetDayOfMonth(datetime);
            Hour        = persianCalendar.GetHour(datetime);
            Minute      = persianCalendar.GetMinute(datetime);
            Second      = persianCalendar.GetSecond(datetime);
            Millisecond = Convert.ToInt32(persianCalendar.GetMilliseconds(datetime));
            HijriDate   = new HijriDate();
            HijriCalendarManager.SetHijriCalendar(datetime);
            HijriDate.Year  = HijriCalendarManager.GetHijriCalendar().GetYear(datetime);
            HijriDate.Month = HijriCalendarManager.GetHijriCalendar().GetMonth(datetime);
            HijriDate.Day   = HijriCalendarManager.GetHijriCalendar().GetDayOfMonth(datetime);
            DateMetaDatas   = HoliDaysData.GetInstance().GetMetaDataByDateTime(datetime);

            IsHoliDay = datetime.DayOfWeek == System.DayOfWeek.Friday;
            foreach (var item in DateMetaDatas)
            {
                IsHoliDay = IsHoliDay || item.IsHoliDay || DateTime.DayOfWeek == System.DayOfWeek.Friday;
            }
        }
Beispiel #11
0
        public JalaliCalendar GetPersianDateTime(DateTime helper, string format = "yyyy/mm/dd")
        {
            if (helper.Year < 1000)
            {
                helper = DateTime.Now;
            }
            PersianCalendar pc = new PersianCalendar();
            var             persianCalendarPart = new JalaliCalendar();

            persianCalendarPart.Year          = pc.GetYear(helper);
            persianCalendarPart.Month         = pc.GetMonth(helper);
            persianCalendarPart.Day           = pc.GetDayOfMonth(helper);
            persianCalendarPart.DayOfYear     = pc.GetDayOfYear(helper);
            persianCalendarPart.DaysInYears   = GetDayInYears(persianCalendarPart);
            persianCalendarPart.MonthsInYears = GetMonthsInYears(persianCalendarPart);

            persianCalendarPart.Hour         = pc.GetHour(helper);
            persianCalendarPart.Minute       = pc.GetMinute(helper);
            persianCalendarPart.MinuteOfYear = (persianCalendarPart.DayOfYear * 24 * 60) + (persianCalendarPart.Hour * 60) + persianCalendarPart.Minute;
            persianCalendarPart.Second       = pc.GetSecond(helper);
            persianCalendarPart.Milisecond   = pc.GetMilliseconds(helper);
            persianCalendarPart.DayNumber    = GetDayOfWeekNumber(helper);
            return(persianCalendarPart);
        }
        public string ConvertDateToPersian(DateTime dt)
        {
            DateTime        d  = dt;
            PersianCalendar pc = new PersianCalendar();

            return(string.Format("{0}/{1}/{2} {3}:{4}:{5}.{6}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d), pc.GetHour(d), pc.GetMinute(d), pc.GetSecond(d), pc.GetMilliseconds(d)));
        }
Beispiel #13
0
 /* Displays a persian formatted date & time. */
 private string displayPersianTime(DateTime time) =>
 persianCal.GetYear(time) + "/" + persianCal.GetMonth(time) +
 "/" + persianCal.GetDayOfMonth(time) + " " +
 persianCal.GetHour(time) + ":" + persianCal.GetMinute(time) + ":" + persianCal.GetSecond(time) + "." + persianCal.GetMilliseconds(time);
Beispiel #14
0
 public static double GetMilliseconds(DateTime date)
 {
     return(pc.GetMilliseconds(date));
 }
Beispiel #15
0
        /// <summary>
        /// دریافت  نام ماه شمسی با گرفتن تاریخ میلادی
        /// </summary>
        /// <param name="input"></param>
        /// <returns>مثال : اردیبهشت</returns>
        public static string ToShamsiMonthNameString(this DateTime input)
        {
            try
            {
                PersianCalendar p            = new PersianCalendar();
                int             Year         = p.GetYear(input);
                int             Month        = p.GetMonth(input);
                int             Day          = p.GetDayOfMonth(input);
                int             Hour         = p.GetHour(input);
                int             Minute       = p.GetMinute(input);
                int             Second       = p.GetSecond(input);
                double          Milliseconds = p.GetMilliseconds(input);
                string          MonthName    = "";
                switch (Month)
                {
                case 1:
                    MonthName = "فروردین";
                    break;

                case 2:
                    MonthName = "اردیبهشت";
                    break;

                case 3:
                    MonthName = "خرداد";
                    break;

                case 4:
                    MonthName = "تیر";
                    break;

                case 5:
                    MonthName = "مرداد";
                    break;

                case 6:
                    MonthName = "شهریور";
                    break;

                case 7:
                    MonthName = "مهر";
                    break;

                case 8:
                    MonthName = "آبان";
                    break;

                case 9:
                    MonthName = "آذر";
                    break;

                case 10:
                    MonthName = "دی";
                    break;

                case 11:
                    MonthName = "بهمن";
                    break;

                case 12:
                    MonthName = "اسفند";
                    break;

                default:
                    break;
                }

                return($"{Year}-{MonthName}-{Day} {Hour}:{Minute}:{Second}.{Milliseconds}");
            }
            catch (Exception)
            {
                return("");
            }
        }
        /// <summary>
        ///     Renders the specified environmental information and appends it to the specified
        ///     <see cref="T:System.Text.StringBuilder" />.
        /// </summary>
        /// <param name="builder">The <see cref="T:System.Text.StringBuilder" /> to append the rendered data to.</param>
        /// <param name="logEvent">Logging event.</param>
        protected override void Append(StringBuilder builder, LogEventInfo logEvent)
        {
            if (builder == null || logEvent == null)
            {
                return;
            }

            var now = logEvent.TimeStamp;

            builder.AppendFormat("{0:0000}/{1:00}/{2:00}-{3:00}:{4:00}:{5:00}.{6:000}", _PersianCalendar.GetYear(now), _PersianCalendar.GetMonth(now), _PersianCalendar.GetDayOfMonth(now), _PersianCalendar.GetHour(now), _PersianCalendar.GetMinute(now), _PersianCalendar.GetSecond(now), _PersianCalendar.GetMilliseconds(now));
        }
Beispiel #17
0
        public static string GetPersianDate(this DateTime date)
        {
            var jc = new PersianCalendar();

            return
                ($"{jc.GetYear(date):0000}/{jc.GetMonth(date):00}/{jc.GetDayOfMonth(date):00} {jc.GetHour(date):00}:{jc.GetMinute(date):00}:{jc.GetSecond(date):00}.{jc.GetMilliseconds(date)}");
        }
Beispiel #18
0
        private string GetDateTimeString(DateTime dt)
        {
#if (PORTABLE)
            throw new NotSupportedException();
#else
            PersianCalendar persian = new PersianCalendar();
            string          log     = "";
            if (IsPersianDateLog)
            {
                log = $"{persian.GetYear(dt)}/{persian.GetMonth(dt)}/{persian.GetDayOfMonth(dt)} {persian.GetHour(dt)}:{persian.GetMinute(dt)}:{persian.GetSecond(dt)}.{persian.GetMilliseconds(dt)} ## ";
            }
            return(log + $"{dt.ToString("MM/dd/yyyy HH:mm:ss")}.{dt.Millisecond}");
#endif
        }
 /// <summary>
 /// Gets the milliseconds value.
 /// </summary>
 /// <returns></returns>
 public double GetMilliseconds()
 {
     return(pc.GetMilliseconds(dt));
 }
Beispiel #20
0
        static string GetDateTimeString(DateTime dt)
        {
            PersianCalendar persian = new PersianCalendar();
            string          log     = "";

            if (IsPersianDateLog)
            {
                log = $"{persian.GetYear(dt)}/{persian.GetMonth(dt)}/{persian.GetDayOfMonth(dt)} {persian.GetHour(dt)}:{persian.GetMinute(dt)}:{persian.GetSecond(dt)}.{persian.GetMilliseconds(dt)} ## ";
            }
            return(log + $"{dt.ToString("MM/dd/yyyy HH:mm:ss")}.{dt.Millisecond}");
        }
Beispiel #21
0
        public static long GetPersianDateNumber(this DateTime date)
        {
            var jc = new PersianCalendar();

            return
                (long.Parse($"{jc.GetYear(date):0000}{jc.GetMonth(date):00}{jc.GetDayOfMonth(date):00}{jc.GetHour(date):00}{jc.GetMinute(date):00}{jc.GetSecond(date):00}{jc.GetMilliseconds(date):000}"));
        }