public PersianDate(int year, int month, int day, int hour, int minute, int second)
        {
            if (!PersianDate.ValidDate(year, month, day, hour, minute, second))
            {
                throw new ArgumentException("Date time is not valid");
            }

            this.year = year;

            this.month = month;

            this.day = day;

            this.hour = hour;

            this.minute = minute;

            this.second = second;

            weekArray = new string[] { "شنبه", "ی˜شنبه", "دوشنبه", "سه شنبه", "هارشنبه", "نجشنبه", "جمعه" };

            monthsArray = new string[]

            {
                "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی",

                "بهمن", "اسفند"
            };

            var dt = calendar.ToDateTime(year, month, day, hour, minute, second, 0);

            this.DayOfWeek = calendar.GetDayOfWeek(dt);
        }
예제 #2
0
        public static DayOfWeek GetDayOfWeek(int year, int month, int day)
        {
            string   shamsi = year.ToString() + "/" + month.ToString() + "/" + day.ToString();
            DateTime date   = Shamsi.ToDateTime(shamsi);

            return(pc.GetDayOfWeek(date));
        }
예제 #3
0
        public static string ToPersianDate(this DateTime dateTime, string standardFormat = "d")
        {
            PersianCalendar pc = new PersianCalendar();
            string          persianDate;

            switch (standardFormat)
            {
            case "d":
                // Short date pattern
                // Example: 1394/1/25
                persianDate = $"{pc.GetYear(dateTime)}/{pc.GetMonth(dateTime)}/{pc.GetDayOfMonth(dateTime)}";
                break;

            case "D":
                // Long date pattern
                // Example: یکشنبه، 17 اسفند 1393
                persianDate =
                    $"{("FA_" + pc.GetDayOfWeek(dateTime).ToString()).Localize()}، {pc.GetDayOfMonth(dateTime)} {("FA_Month" + pc.GetMonth(dateTime)).Localize()} {pc.GetYear(dateTime)}";
                break;

            case "f":
                // Full date/time pattern (short time).
                // Example: یکشنبه، 17 اسفند 1393 8:35
                persianDate = string.Format("{0} {1} {2} {3} ساعت {4}:{5}",
                                            pc.GetDayOfWeek(dateTime).ToString().Localize(),
                                            pc.GetDayOfMonth(dateTime),
                                            string.Format("Date_Month{0}", pc.GetMonth(dateTime)).Localize(),
                                            pc.GetYear(dateTime),
                                            dateTime.Hour,
                                            dateTime.Minute);
                break;

            case "g":
                // General date/time pattern (short time).
                // Example: 1394/1/13 - 14:45
                persianDate =
                    $"{pc.GetYear(dateTime)}/{pc.GetMonth(dateTime)}/{pc.GetDayOfMonth(dateTime)} - {dateTime.Hour}:{dateTime.Minute}";
                break;

            case "MMDD":
                // Example: 6/23
                persianDate =
                    $"{pc.GetMonth(dateTime)}/{pc.GetDayOfMonth(dateTime)}";
                break;

            default:
                persianDate = "";
                break;
            }

            return(persianDate);
        }
예제 #4
0
        public static String Persian()
        {
            string          D, S;
            DateTime        Mdate = DateTime.Now;
            PersianCalendar PD    = new PersianCalendar();

            D = string.Format("{2} / {1} / {0}", PD.GetDayOfMonth(Mdate),
                              PD.GetMonth(Mdate), PD.GetYear(Mdate));
            S = PD.GetDayOfWeek(Mdate).ToString();
            switch (S)
            {
            case "Saturday": return(D + " " + " :   شنبه");

            case "Sunday": return(D + " " + " :  یک شنبه");

            case "Monday": return(D + " " + " :  دو شنبه");

            case "Tuesday": return(D + " " + " :  سه شنبه");

            case "Wednesday": return(D + " " + " : چهار شنبه");

            case "Thursday": return(D + " " + " : پنج شنبه");

            case "Friday": return(D + " " + " :  جمعه");
            }
            return("Persian Data");
        }
        public async Task <Day> GetDayModel(int personnelId, DateTime dayDate)
        {
            var qDay = from d in dbContext.Days
                       where d.PersonnelId == personnelId &&
                       d.Date.Date == dayDate.Date
                       select d;

            if (!await qDay.AnyAsync())
            {
                Day newDay = new Day();
                newDay.PersonnelId = personnelId;
                newDay.Date        = dayDate;

                // todo arash : set day event by calendar and app setting

                var dayOfWeek = persianCalendar.GetDayOfWeek(dayDate);
                if (dayOfWeek == DayOfWeek.Friday)
                {
                    newDay.TimeType = WorkTimeType.Holiday;
                }
                else
                {
                    newDay.TimeType = WorkTimeType.AtWork;
                }

                await dbContext.Days.AddAsync(newDay);

                await dbContext.SaveChangesAsync();
            }

            return(await qDay.FirstOrDefaultAsync());
        }
예제 #6
0
        public static bool HolidayTest(DateTime inDateTime)
        {
            PersianCalendar p = new PersianCalendar();
            //var miladi = p..(yeear, moonth, daay, 0, 0, 0, 0);
            //var week = persianCalendar.GetDayOfWeek(miladi);
            bool b;

            try
            {
                var url = "http://www.time.ir/fa/event/list/0/" + p.GetYear(inDateTime) + "/" + p.GetMonth(inDateTime) + "/" + p.GetDayOfMonth(inDateTime);
                var web = new HtmlWeb();

                var doc = web.Load(url);

                b = doc.Text.Contains("eventHoliday");
            }
            catch
            {
                b = false;
            }
            bool c = Convert.ToString(p.GetDayOfWeek(inDateTime)).Contains("Friday");



            if (b == true || c == true)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #7
0
        public static string GetDay(DateTime dateTime)
        {
            var day     = new string[] { "یکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
            var persian = new PersianCalendar();

            return(day[(int)persian.GetDayOfWeek(dateTime)]);
        }
예제 #8
0
        public static string ConvertToShamsiDate(DateTime @from, bool withtime
                                                 , bool withweekday)
        {
            var pc = new PersianCalendar();


            var tmp = pc.GetDayOfMonth(@from);
            var day = tmp < 10 ? "0" + tmp : tmp + "";

            var monthtmp = pc.GetMonth(@from);
            var month    = monthtmp < 10 ? "0" + monthtmp : monthtmp + "";

            string date = $@"{pc.GetYear(@from)}/{month}/{day}";

            if (withtime)
            {
                date += $@" - {@from.TimeOfDay}";
            }

            if (withweekday)
            {
                date += $@" - {GetTranslate(pc.GetDayOfWeek(@from))}";
            }

            return(date);
        }
예제 #9
0
        public static string GetPersianDateStr(
            DateTime date, InsertDateFormat dateFormat = InsertDateFormat.DateNumbers)
        {
            var year    = persianDate.GetYear(date);
            var month   = persianDate.GetMonth(date);
            var day     = persianDate.GetDayOfMonth(date);
            var weekDay = persianDate.GetDayOfWeek(date);
            var dateStr = $"{day}/{month}/{year}";

            switch (dateFormat)
            {
            case InsertDateFormat.DayMonthNameYear:
                return($"{day} {persianMonthNames[month]} {year}");

            case InsertDateFormat.WeekDayDateNumbers:
                return($"{persianWeekDays[weekDay]} {dateStr}");

            case InsertDateFormat.WeekDayDayMonthNameYear:
                return($"{persianWeekDays[weekDay]} {day} {persianMonthNames[month]} {year}");

            case InsertDateFormat.WeekDayMonthNameDayYear:
                return($"{persianWeekDays[weekDay]}, {persianMonthNames[month]} {day}, {year}");
            }

            return(dateStr);
        }
예제 #10
0
        public static DayOfWeek DayOfWeekend(PersianDate date)
        {
            PersianCalendar p    = new PersianCalendar();
            var             temp = ToGregorianDate(date);

            return(p.GetDayOfWeek(temp));
        }
예제 #11
0
        /// <summary>
        /// Gets the Jalali (Shamsi) day name.
        /// </summary>
        /// <param name="dateTime">The date time.</param>
        /// <param name="date">The date.</param>
        /// <returns>System.String.</returns>
        public static string GetJalaliDayName(this DateTime dateTime, DateTime date)
        {
            var pc  = new PersianCalendar();
            var day = pc.GetDayOfWeek(date);

            switch (day)
            {
            case DayOfWeek.Saturday:
                return("شنبه");

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

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

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

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

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

            case DayOfWeek.Friday:
                return("جمعه");

            default:
                return("");
            }
        }
예제 #12
0
        static void DrawCalendar(DateTime date, bool highlightDay, bool showYear)
        {
            string[]        mn = { "Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand" };
            PersianCalendar p  = new PersianCalendar();
            string          t  = string.Empty;

            if (showYear == true)
            {
                t = mn[p.GetMonth(date) - 1] + " " + p.GetYear(date).ToString();
            }
            else
            {
                t = mn[p.GetMonth(date) - 1];
            }
            for (int i = 0; i < 10 - (t.Length / 2) - (t.Length % 2); i++)
            {
                Console.Write(" ");
            }
            Console.WriteLine(t);
            Console.WriteLine("Sh Ye Do Se Ch Pa Jo");
            int days       = p.GetDaysInMonth(p.GetYear(date), p.GetMonth(date));
            int currentDay = 1;
            int fas        = (int)p.GetDayOfWeek(new DateTime(date.Year, date.Month, 1));

            for (int j = 0; j <= 5; j++)
            {
                for (int i = 0; i <= 6; i++)
                {
                    if (currentDay > days + fas)
                    {
                        break;
                    }
                    currentDay++;
                    if (currentDay > fas + 1)
                    {
                        if ((currentDay - fas - 1 == p.GetDayOfMonth(date)) && (highlightDay == true))
                        {
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.BackgroundColor = ConsoleColor.White;
                        }
                        string d = (currentDay - fas - 1).ToString();
                        if (d.Length > 1)
                        {
                            Console.Write((currentDay - fas - 1).ToString("00"));
                        }
                        else
                        {
                            Console.Write((currentDay - fas - 1).ToString(" 0"));
                        }
                        Console.ResetColor();
                        Console.Write(" ");
                    }
                    else
                    {
                        Console.Write("   ");
                    }
                }
                Console.WriteLine("");
            }
        }
예제 #13
0
        public static NameValue ToShamsiLong(this DateTime dateTime)
        {
            try
            {
                PersianCalendar pc      = new PersianCalendar();
                int             pcYear  = pc.GetYear(dateTime);
                int             pcMonth = pc.GetMonth(dateTime);

                int    pcDay         = pc.GetDayOfMonth(dateTime);
                int    pcHour        = pc.GetHour(dateTime);
                int    pcMin         = pc.GetMinute(dateTime);
                int    pcSec         = pc.GetSecond(dateTime);
                string convertedDate = string.Format("{0}-{1}-{2} {3}:{4}:{5}", pcYear,
                                                     pcMonth < 10 ? "0" + pcMonth.ToString() : pcMonth.ToString(),
                                                     pcDay < 10 ? "0" + pcDay.ToString() : pcDay.ToString(),
                                                     pcHour < 10 ? "0" + pcHour.ToString() : pcHour.ToString(),
                                                     pcMin < 10 ? "0" + pcMin.ToString() : pcMin.ToString(),
                                                     pcSec < 10 ? "0" + pcSec.ToString() : pcSec.ToString());

                return(new NameValue(GetPersianDate(pc.GetDayOfWeek(dateTime)), convertedDate));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #14
0
        public static string ToLongPersianDate(DateTime date)
        {
            var cal     = new PersianCalendar();
            var days    = new[] { "یکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنج شنبه", "جمعه", "شنبه" };
            var dayName = days[(int)cal.GetDayOfWeek(date)];

            return($"{dayName}، {cal.GetDayOfMonth(date)} {MonthName(date)} {cal.GetYear(date)}");
        }
예제 #15
0
        public static string ToLongShamsiWithWeek(this DateTime value)
        {
            var pc      = new PersianCalendar();
            var month   = MonthToShamsi(pc.GetMonth(value));
            var weekDay = DayOfWeekShamsi(pc.GetDayOfWeek(value));

            return(weekDay + " " + pc.GetDayOfMonth(value) + " " + month + " ماه " + pc.GetYear(value));
        }
예제 #16
0
    public void GetCurrentDateTime_LocalDateTime()
    {
        string    CurrentLangID = string.Empty;
        string    SysLangID     = string.Empty;
        string    Identifier    = string.Empty;
        string    retAxises     = string.Empty;
        int       year          = 0;
        int       month         = 0;
        int       day           = 0;
        DayOfWeek dayOfWeek     = 0;
        string    dayName       = string.Empty;
        string    monthName     = string.Empty;

        CurrentLangID = this.LangProv.GetCurrentLanguage();
        SysLangID     = this.LangProv.GetCurrentSysLanguage();
        switch (SysLangID)
        {
        case "en-US":
            switch (CurrentLangID)
            {
            case "en-US":
                Identifier = "ee";
                break;

            case "fa-IR":
                Identifier = "ef";
                break;
            }
            GregorianCalendar gCal = new GregorianCalendar();
            year      = gCal.GetYear(DateTime.Now);
            month     = gCal.GetMonth(DateTime.Now);
            day       = gCal.GetDayOfMonth(DateTime.Now);
            dayOfWeek = gCal.GetDayOfWeek(DateTime.Now);
            break;

        case "fa-IR":
            switch (CurrentLangID)
            {
            case "en-US":
                Identifier = "fe";
                break;

            case "fa-IR":
                Identifier = "ff";
                break;
            }
            PersianCalendar pCal = new PersianCalendar();
            year      = pCal.GetYear(DateTime.Now);
            month     = pCal.GetMonth(DateTime.Now);
            day       = pCal.GetDayOfMonth(DateTime.Now);
            dayOfWeek = pCal.GetDayOfWeek(DateTime.Now);
            break;
        }
        monthName = GetLocalResourceObject("lblMonth" + month + Identifier).ToString();
        dayName   = GetLocalResourceObject("lblDay" + this.GetDayOfWeek_LocalDateTime(dayOfWeek).ToString() + Identifier).ToString();

        lblCurrentDateTime_LocalDateTime.Text = dayName + " " + day + " " + monthName + " " + year;
    }
예제 #17
0
        private string CalculateDayOfWeek()
        {
            DateTime        dt = GetDateG();
            PersianCalendar pc = new PersianCalendar();

            System.DayOfWeek day = pc.GetDayOfWeek(dt);

            return(DayOfWeek.GetDayofWeekName((int)day));
        }
예제 #18
0
        public static string ToLongPersianDateString(this DateTime date)
        {
            int       year      = PersianCalendar.GetYear(date);
            int       month     = PersianCalendar.GetMonth(date);
            int       day       = PersianCalendar.GetDayOfMonth(date);
            DayOfWeek dayOfWeek = PersianCalendar.GetDayOfWeek(date);

            return(string.Format("{0}، {1} {2} {3}", GetDayOfWeekString(dayOfWeek), day, GetMonthName(month), year));
        }
예제 #19
0
        public String GetPersianDate(DateTime dt)
        {
            PersianCalendar pc = new PersianCalendar();

            if (IsToday(dt))
            {
                return(LimitedPersianDatetime(dt));
            }
            return(PersianDays(pc.GetDayOfWeek(dt).ToString()) + " " + pc.GetDayOfMonth(dt).ToString() + " " + PersianMonth(pc.GetMonth(dt)) + " " + dt.Hour + ":" + dt.Minute + ":" + dt.Second);
        }
예제 #20
0
파일: Date.cs 프로젝트: sasiit23/smah1
 public Date(DateTime dtGregorian)
     : this()
 {
     Year          = PersianCalendar.GetYear(dtGregorian);
     Month         = PersianCalendar.GetMonth(dtGregorian);
     DayOfMonth    = PersianCalendar.GetDayOfMonth(dtGregorian);
     DayOfWeek     = PersianCalendar.GetDayOfWeek(dtGregorian);
     DayOfYear     = PersianCalendar.GetDayOfYear(dtGregorian);
     dateGregorian = dtGregorian.ResetClock();
 }
예제 #21
0
        // ----------------------------------------------------------------------------[ شنبه 2  شهریور 1392 ]------------------------------- //
        #region ToPersianChar
        public static string ToPersianChar(this DateTime value)
        {
            PersianCalendar pc = new PersianCalendar();

            //  شنبه
            //  2
            // شهریور
            // 1392
            return(string.Format("{0} {1} {2} {3}", ToPersianDayOfWeek(pc.GetDayOfWeek(value)), pc.GetDayOfMonth(value), pMonth[pc.GetMonth(value) - 1], pc.GetYear(value)));
        }
        public static string ToShamsi(this DateTime dateTime)
        {
            var pt         = new PersianCalendar();
            var year       = pt.GetYear(dateTime);
            var month      = pt.GetMonth(dateTime);
            var day        = pt.GetDayOfMonth(dateTime);
            var daysOfWeek = pt.GetDayOfWeek(dateTime);

            return($"{DaysStrings[(int)daysOfWeek]} {day}-{MonthStrings[month - 1]}-{year}");
        }
        public static PersianCalendar makeMeJalali(this DateTime dateTime)
        {
            PersianCalendar persianCalendar = new PersianCalendar();

            persianCalendar.GetYear(dateTime);
            persianCalendar.GetMonth(dateTime);
            persianCalendar.GetDayOfMonth(dateTime);
            persianCalendar.GetDayOfWeek(dateTime);
            persianCalendar.GetDayOfYear(dateTime);
            return(persianCalendar);
        }
예제 #24
0
        public static void DateChanger(this DateTime thisDate)
        {
            PersianCalendar pc = new PersianCalendar();

            Console.WriteLine("Persian Calendar:    {0}, {1}/{2}/{3}\n",
                              pc.GetDayOfWeek(thisDate),
                              pc.GetMonth(thisDate),
                              pc.GetDayOfMonth(thisDate),
                              pc.GetYear(thisDate)
                              );
        }
예제 #25
0
        public string[] FillPersianCal(int CurrentGregorianYear)
        {
            int             DayCount;
            int             CurrentOperationYear;
            DayOfWeek       DayNumber;
            PersianCalendar pnCal  = null;
            int             pnYear = -1;

            string[] arPMonths = new string[367];

            PersianCalendar pCal = new PersianCalendar();
            int             CurrentPersianYear = pCal.GetYear(new DateTime(CurrentGregorianYear, 1, 1));

            while (pnCal == null || pnYear == CurrentPersianYear)
            {
                if (pnCal == null)
                {
                    CurrentOperationYear = CurrentGregorianYear - 1;
                }
                else
                {
                    CurrentOperationYear = CurrentGregorianYear;
                }

                for (int i = 1; i <= 12; i++)
                {
                    DayCount = new GregorianCalendar(GregorianCalendarTypes.USEnglish).GetDaysInMonth(CurrentOperationYear, i);

                    for (int j = 1; j <= DayCount; j++)
                    {
                        DateTime gDate = new DateTime(CurrentOperationYear, i, j);
                        pnCal  = new PersianCalendar();
                        pnYear = pnCal.GetYear(gDate);
                        int pnMonth = pnCal.GetMonth(gDate);
                        int pnDay   = pnCal.GetDayOfMonth(gDate);
                        DayNumber = pnCal.GetDayOfWeek(gDate);

                        if (pnYear == CurrentPersianYear)
                        {
                            this.FillMonthsArray(arPMonths, pnYear, pnMonth, pnDay, DayNumber);
                        }
                        if (pnYear == CurrentPersianYear + 1)
                        {
                            break;
                        }
                    }
                }
            }
            if (arPMonths.Length > 0 && this.LangProv.GetCurrentLanguage() != null)
            {
                arPMonths[DayCounter] = this.LangProv.GetCurrentLanguage();
            }
            return(arPMonths);
        }
예제 #26
0
        /// <summary>
        /// بدست اوردن نام روز شمسی
        /// </summary>
        /// <returns></returns>
        public static string GetNameDayInMonth()
        {
            string          Resme = "";
            string          Res;
            PersianCalendar DateFme = new PersianCalendar();

            Res = DateFme.GetDayOfWeek(DateTime.Now).ToString();
            switch (Res)
            {
            case "Saturday":
            {
                Resme = "شنبه";
                break;
            }

            case "Sunday":
            {
                Resme = "یکشنبه";
                break;
            }

            case "Monday":
            {
                Resme = "دو شنبه";
                break;
            }

            case "Tuesday":
            {
                Resme = "سه شنبه";
                break;
            }

            case "Wednesday":
            {
                Resme = "چهار شنبه";
                break;
            }

            case "Thursday":
            {
                Resme = "پنج شنبه";
                break;
            }

            case "Friday":
            {
                Resme = "جمعه";
                break;
            }
            }
            return(Resme);
        }
예제 #27
0
 /// <summary>
 /// Creates an instance of PersianDateTime
 /// </summary>
 /// <param name="year">Shamsi Year</param>
 /// <param name="month">Shamsi Month</param>
 /// <param name="day">Shamsi Day</param>
 /// <param name="hour"></param>
 /// <param name="minute"></param>
 /// <param name="second"></param>
 /// <param name="milliSecond"></param>
 public PersianDateTime(int year, int month, int day, int hour = 0, int minute = 0, int second = 0, int milliSecond = 0)
     : this()
 {
     Year        = year;
     Month       = month;
     Day         = day;
     DayOfWeek   = (int)_calendar.GetDayOfWeek((DateTime)this);
     Hour        = hour;
     Minute      = minute;
     Second      = second;
     MilliSecond = milliSecond;
 }
예제 #28
0
        public string ToPersianDate(DateTime thisDate)
        {
            PersianCalendar pc = new PersianCalendar();

            return(string.Format("{0}, {1}/{2}/{3} {4}:{5}:{6}\n",
                                 pc.GetDayOfWeek(thisDate),
                                 pc.GetMonth(thisDate),
                                 pc.GetDayOfMonth(thisDate),
                                 pc.GetYear(thisDate),
                                 pc.GetHour(thisDate),
                                 pc.GetMinute(thisDate),
                                 pc.GetSecond(thisDate)));
        }
        public PersianDateTime(DateTime dateTime)
        {
            var persianCalendar = new PersianCalendar();

            Year       = persianCalendar.GetYear(dateTime);
            Month      = persianCalendar.GetMonth(dateTime);
            DayOfMonth = persianCalendar.GetDayOfMonth(dateTime);
            DayOfWeek  = persianCalendar.GetDayOfWeek(dateTime);
            MonthDays  = CountDayOfMonth(Month);

            Hour   = dateTime.Hour;
            Minute = dateTime.Minute;
            Second = dateTime.Second;
        }
예제 #30
0
        public static string GetGregorianToPersianDateInverse(DateTime dateTime)
        {
            try
            {
                var persianCalendar = new PersianCalendar();
                dateTime = dateTime.ToLocalTime();

                return($"{GetPersianDayOfWeek(persianCalendar.GetDayOfWeek(dateTime))} - {persianCalendar.GetDayOfMonth(dateTime):00} {GetPersianMonth(persianCalendar.GetMonth(dateTime))} {persianCalendar.GetYear(dateTime)}");
            }
            catch (Exception)
            {
                return(String.Empty);
            }
        }