public PersianDateTime AddDays(int Value) { DateTime gregorianDate = this.gregorianDate.AddDays(Convert.ToDouble(Value)); _persianDateTime = new PersianDateTime(gregorianDate); return(_persianDateTime); }
/// <summary> /// تبدیل شمسی به میلادی /// </summary> /// <param name="persianDate">تاریخ شمسی</param> /// <returns></returns> public static DateTime ToMildiDate(string persianDate) { try { if (!Utility.IsEmpty(persianDate)) { string[] strs = persianDate.Split('/'); if (strs[0].Length == 4) { persianDate = strs[0] + "/" + strs[1].PadLeft(2, '0') + "/" + strs[2].PadLeft(2, '0'); } else { persianDate = strs[2] + "/" + strs[1].PadLeft(2, '0') + "/" + strs[0].PadLeft(2, '0'); } PersianDateTime p = PersianDateTime.Parse(persianDate); return(p.GregorianDate); } return(GTSMinStandardDateTime); } catch (Exception ex) { if (ex is InvalidPersianDateException) { throw ex; } else { throw new BaseException(ex.Message, String.Format("Utility.ToMiladiDate({0})", persianDate), ex); } } }
public PersianDateTime AddYears(int Value) { DateTime gregorianDate = this.gregorianDate.AddYears(Value); _persianDateTime = new PersianDateTime(gregorianDate); return(_persianDateTime); }
/// <summary> /// ابتدای ماه شمسی را باتوجه به تاریخ میلادی برمیگرداند /// </summary> /// <param name="miladiDate"></param> /// <returns></returns> public static DateTime GetStartOfPersianMonth(DateTime miladiDate) { DateTime monthStart = new DateTime(); PersianDateTime date = Utility.ToPersianDateTime(miladiDate); monthStart = Utility.ToMildiDate(String.Format("{0}/{1}/{2}", date.Year, date.Month, 1)); return(monthStart); }
/// <summary> /// وظیفه بررسی وجود تاریخ ارسالی در بازه این کلاس بعهده این تابع می باشد /// </summary> /// <param name="DateTime"></param> /// <returns>اگر تاریخ ارسالی در بازه نگهداری شده توسط کلاس باشد "درست" وگرنه "نا درست" برمی گرداند</returns> public bool IsContain(PersianDateTime DateTime) { if (this.fromDate.Date <= DateTime.GregorianDate.Date && this.toDate.Date >= DateTime.GregorianDate.Date) { return(true); } return(false); }
/// <summary> /// انتهای ماه شمسی را باتوجه به تاریخ میلادی برمیگرداند /// </summary> /// <param name="miladiDate"></param> /// <returns></returns> public static DateTime GetEndOfPersianMonth(DateTime miladiDate) { DateTime monthEnd = new DateTime(); PersianDateTime date = Utility.ToPersianDateTime(miladiDate); int endOfMonth = new PersianCalendar().GetDaysInMonth(date.Year, date.Month); monthEnd = Utility.ToMildiDate(String.Format("{0}/{1}/{2}", date.Year, date.Month, endOfMonth)); return(monthEnd); }
/// <summary> /// تبدیل میلادی به شمسی /// </summary> /// <param name="date">تاریخ میلادی</param> /// <returns></returns> public static string ToPersianDate(DateTime miladiDate) { try { return(PersianDateTime.MiladiToShamsi(Utility.ToString(miladiDate))); } catch (Exception ex) { throw new BaseException(ex.Message, String.Format("Utility.ToPersianDate({0})", miladiDate), ex); } }
/// <summary> /// نام روز را برمیگرداند /// </summary> /// <param name="date"></param> /// <param name="language"></param> /// <returns></returns> public static string GetDayName(DateTime date, LanguagesName language) { if (language == LanguagesName.Parsi) { return(PersianDateTime.GetPershianDayName(date)); } else { return(PersianDateTime.GetEnglishDayName(date)); } }
/// <summary> /// تبدیل میلادی به شمسی /// </summary> /// <param name="date">تاریخ میلادی</param> /// <returns></returns> public static PersianDateTime ToPersianDateTime(DateTime miladiDate) { try { PersianDateTime pd = new PersianDateTime(miladiDate); return(pd); } catch (Exception ex) { throw new BaseException(ex.Message, String.Format("Utility.ToPersianDateTime({0})", miladiDate), ex); } }
/// <summary> /// تاریخ اولین روز سال مشخص شده را برمیگرداند /// </summary> /// <param name="Date"></param> /// <returns></returns> public static DateTime GetDateOfBeginYear(DateTime Date, LanguagesName SysLanguage) { switch (SysLanguage) { case LanguagesName.Parsi: return(new PersianDateTime(PersianDateTime.ToPersianDateTime(Date).Year, 1, 1).GregorianDate); case LanguagesName.English: case LanguagesName.Unknown: default: return(new DateTime(Date.Year, 1, Utility.GetEndOfMiladiMonth(Date.Year, 1))); } }
/// <summary> /// ابتدای ماه بعد /// </summary> /// <returns></returns> public PersianDateTime NextMonthStart() { int _day = 1; int _month = this.month + 1; if (_month > 12) { _month = 1; this.year += 1; } _persianDateTime = new PersianDateTime(this.year, _month, _day); return(_persianDateTime); }
/// <summary> /// تاریخ آخرین روز سال مشخص شده را برمیگرداند /// </summary> /// <param name="Date"></param> /// <returns></returns> public static DateTime GetDateOfEndYear(DateTime Date, LanguagesName SysLanguage) { switch (SysLanguage) { case LanguagesName.Parsi: int year = PersianDateTime.ToPersianDateTime(Date).Year; return(Convert.ToDateTime(PersianDateTime.ShamsiToMiladi(String.Format("{0}/{1}/{2}", year, 12, Utility.GetEndOfPersianMonth(year, 12))))); case LanguagesName.English: case LanguagesName.Unknown: default: return(new DateTime(Date.Year, 12, Utility.GetEndOfMiladiMonth(Date.Year, 12))); } }
/// <summary> /// دوره محاسبات از روز و ماه تشکیل شده است که برای راحتی کار در مقایسه ها /// کلیدی ایجاد شده است که از ماه و روز یک عدد میسازد /// این عدد 5 رقمی است و با فرمت زیر ساخته میشود /// '2'+(MM).ToString()+(DD).ToString() /// اگر ماه مربوط به سال قبل بود بجای 2 عدد یک و اگر مربوط به سال بعد عدد سه را میگزاریم /// </summary> /// <param name="date"></param> /// <returns></returns> public static int ToDateRangeIndex(DateTime date, LanguagesName culture) { if (culture == LanguagesName.Parsi) { PersianDateTime p = ToPersianDateTime(date); string index = String.Format("2{0}{1}", p.Month.ToString().PadLeft(2, '0'), p.Day.ToString().PadLeft(2, '0')); return(ToInteger(index)); } else if (culture == LanguagesName.English) { string index = String.Format("2{0}{1}", date.Month.ToString().PadLeft(2, '0'), date.Day.ToString().PadLeft(2, '0')); return(ToInteger(index)); } return(0); }
public static string MiladiToShamsi(string miladiDate) { try { DateTime date = Convert.ToDateTime(miladiDate); PersianDateTime pDate = new PersianDateTime(date); return(pDate.PersianDate); } catch (Exception e) { throw new Exception(String.Format("Sended date: {0} {1}", miladiDate, e.Message)); } }
/// <summary> /// تبدیل میلادی به شمسی /// </summary> /// <param name="date">تاریخ میلادی</param> /// <returns></returns> public static string ToPersianDate(string miladiDate) { try { if (!Utility.IsEmpty(miladiDate)) { return(PersianDateTime.MiladiToShamsi(miladiDate)); } return(PersianDateTime.MiladiToShamsi(Utility.ToString(GTSMinStandardDateTime))); } catch (Exception ex) { throw new BaseException(ex.Message, String.Format("Utility.ToPersianDate({0})", miladiDate), ex); } }
public static string GetPershianDayName(DateTime GregorianDate) { return(GetPershianDayName(PersianDateTime.GetDayOfWeek(GregorianDate))); }
static PersianDateTime() { now = new PersianDateTime(DateTime.Now); MinValue = new PersianDateTime(1, 1, 1, 12, 0); // 12:00:00.000 AM, 22/03/0622 MaxValue = new PersianDateTime(DateTime.MaxValue); }
public PersianDateTime SubtractDays(int Value) { _persianDateTime = this.AddDays(-Value); return(_persianDateTime); }