コード例 #1
0
        /// <summary>
        /// دریافت جزء زمانی ویژه‌ی این وهله
        /// </summary>
        public static DateTime GetDateTimeOffsetPart(
            this DateTimeOffset dateTimeOffset,
            DateTimeOffsetPart dataDateTimeOffsetPart)
        {
            switch (dataDateTimeOffsetPart)
            {
            case DateTimeOffsetPart.DateTime:
                return(dateTimeOffset.DateTime);

            case DateTimeOffsetPart.LocalDateTime:
                return(dateTimeOffset.LocalDateTime);

            case DateTimeOffsetPart.UtcDateTime:
                return(dateTimeOffset.UtcDateTime);

            case DateTimeOffsetPart.IranLocalDateTime:
                return(dateTimeOffset.ToIranTimeZoneDateTimeOffset().DateTime);

            default:
                throw new ArgumentOutOfRangeException(nameof(dataDateTimeOffsetPart), dataDateTimeOffsetPart, null);
            }
        }
コード例 #2
0
        /// <summary>
        /// ماه شمسی معادل را محاسبه کرده و سپس
        /// تاریخ روزهای ابتدا و انتهای آن ماه شمسی را بازگشت می‌دهد
        /// </summary>
        public static PersianMonth GetPersianMonthStartAndEndDates(this DateTimeOffset dateTimeOffset, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
        {
            var dateTime     = dateTimeOffset.GetDateTimeOffsetPart(dateTimeOffsetPart);
            var persianYear  = dateTime.GetPersianYear();
            var persianMonth = dateTime.GetPersianMonth();

            return(persianYear.GetPersianMonthStartAndEndDates(persianMonth));
        }
コード例 #3
0
        /// <summary>
        /// سال شمسی معادل را محاسبه کرده و سپس
        /// تاریخ روزهای ابتدا و انتهای آن سال شمسی را بازگشت می‌دهد
        /// </summary>
        public static PersianYear GetPersianYearStartAndEndDates(this DateTimeOffset dateTimeOffset, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
        {
            var persianYear = dateTimeOffset.GetDateTimeOffsetPart(dateTimeOffsetPart).GetPersianYear();

            return(persianYear.GetPersianYearStartAndEndDates());
        }
コード例 #4
0
 /// <summary>
 /// گرفتن نام فارسی روزهای هفته
 /// </summary>
 /// <param name="dt">تاریخ و زمان</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 public static string GetPersianWeekDayName(this DateTimeOffset dt, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(GetPersianWeekDayName(dt.GetDateTimeOffsetPart(dateTimeOffsetPart)));
 }
コード例 #5
0
 /// <summary>
 /// گرفتن نام فارسی روزهای هفته
 /// </summary>
 /// <param name="dt">تاریخ و زمان</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 public static string GetPersianWeekDayName(this DateTimeOffset?dt, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(dt == null ? string.Empty : GetPersianWeekDayName(dt.Value.GetDateTimeOffsetPart(dateTimeOffsetPart)));
 }
コード例 #6
0
 /// <summary>
 /// تبدیل تاریخ میلادی به شمسی و دریافت اجزای سال، ماه و روز نتیجه‌ی حاصل‌
 /// </summary>
 /// <param name="gregorianDate">تاریخ و زمان</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 public static PersianDay ToPersianYearMonthDay(this DateTimeOffset?gregorianDate, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(gregorianDate == null ?
            throw new ArgumentNullException(nameof(gregorianDate)) :
            ToPersianYearMonthDay(gregorianDate.Value.GetDateTimeOffsetPart(dateTimeOffsetPart)));
 }
コード例 #7
0
 /// <summary>
 /// نمایش دوستانه‌ی یک تاریخ و ساعت انگلیسی به شمسی
 /// مانند ۱۰ روز قبل، سه شنبه ۲۱ دی ۱۳۹۵، ساعت ۱۰:۲۰
 /// </summary>
 /// <param name="dt">تاریخ ورودی</param>
 /// <param name="comparisonBase">مبنای مقایسه مانند هم اکنون</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 /// <param name="appendHhMm">آیا ساعت نیز به نتیجه‌اضافه شود؟</param>
 /// <param name="includePersianDate">آيا تاريخ نيز به نتيجه اضافه شود؟</param>
 /// <returns>نمایش دوستانه</returns>
 public static string ToFriendlyPersianDateTextify(
     this DateTimeOffset dt, DateTime comparisonBase,
     DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime, bool appendHhMm = true, bool includePersianDate = true)
 {
     return($"{UnicodeConstants.RleChar}{toFriendlyPersianDate(dt.GetDateTimeOffsetPart(dateTimeOffsetPart), comparisonBase, appendHhMm, false, includePersianDate).ToPersianNumbers()}");
 }
コード例 #8
0
 /// <summary>
 /// تبدیل تاریخ میلادی به شمسی
 /// با قالبی مانند 1395/10/21 10:20
 /// </summary>
 /// <param name="dt">تاریخ و زمان</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 /// <returns>تاریخ شمسی</returns>
 public static string ToShortPersianDateTimeString(this DateTimeOffset?dt, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(dt == null ? string.Empty : ToShortPersianDateTimeString(dt.Value.GetDateTimeOffsetPart(dateTimeOffsetPart)));
 }
コード例 #9
0
        /// <summary>
        /// لیست مناسبت‌های تعطیلات رسمی ایران در این روز خاص در صورت وجود
        /// از سال 1395 تا پایان سال 1398
        /// </summary>
        /// <param name="date">تاریخ</param>
        /// <param name="dateTimeOffsetPart"></param>
        public static IEnumerable <string>?GetHolidays(this DateTimeOffset date, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
        {
            var fromDt = date.GetDateTimeOffsetPart(dateTimeOffsetPart);

            return(GetHolidays(fromDt));
        }
コード例 #10
0
 /// <summary>
 /// محاسبه سن
 /// </summary>
 /// <param name="birthday">تاریخ تولد</param>
 /// <param name="comparisonBase">مبنای محاسبه مانند هم اکنون</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 /// <returns>سن</returns>
 public static int GetAge(this DateTimeOffset birthday, DateTime comparisonBase, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(GetAge(birthday.GetDateTimeOffsetPart(dateTimeOffsetPart), comparisonBase));
 }
コード例 #11
0
 /// <summary>
 /// نمایش فارسی روز دریافتی
 /// مانند سه شنبه ۲۱ دی ۱۳۹۵
 /// </summary>
 /// <param name="dt">تاریخ و زمان</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 public static string ToPersianDateTextify(this DateTimeOffset dt, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(ToPersianDateTextify(dt.GetDateTimeOffsetPart(dateTimeOffsetPart)));
 }
コード例 #12
0
 /// <summary>
 /// نمایش دوستانه‌ی یک تاریخ و ساعت انگلیسی به شمسی
 /// مانند ۱۰ روز قبل، سه شنبه ۲۱ دی ۱۳۹۵، ساعت ۱۰:۲۰
 /// </summary>
 /// <param name="dt">تاریخ ورودی</param>
 /// <param name="comparisonBase">مبنای مقایسه مانند هم اکنون</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 /// <returns>نمایش دوستانه</returns>
 public static string ToFriendlyPersianDateTextify(this DateTimeOffset?dt, DateTime comparisonBase, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(dt == null ? string.Empty : ToFriendlyPersianDateTextify(dt.Value.GetDateTimeOffsetPart(dateTimeOffsetPart), comparisonBase));
 }
コード例 #13
0
 /// <summary>
 /// نمایش دوستانه‌ی یک تاریخ و ساعت انگلیسی به شمسی
 /// مانند ۱۰ روز قبل، سه شنبه ۲۱ دی ۱۳۹۵، ساعت ۱۰:۲۰
 /// </summary>
 /// <param name="dt">تاریخ ورودی</param>
 /// <param name="comparisonBase">مبنای مقایسه مانند هم اکنون</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 /// <returns>نمایش دوستانه</returns>
 public static string ToFriendlyPersianDateTextify(this DateTimeOffset dt, DateTime comparisonBase, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return($"{UnicodeConstants.RleChar}{toFriendlyPersianDate(dt.GetDateTimeOffsetPart(dateTimeOffsetPart), comparisonBase).ToPersianNumbers()}");
 }
コード例 #14
0
        /// <summary>
        /// هفته شمسی معادل را محاسبه کرده و سپس
        /// تاریخ روزهای ابتدا و انتهای آن هفته شمسی را بازگشت می‌دهد
        /// </summary>
        public static PersianWeek GetPersianWeekStartAndEndDates(this DateTimeOffset dateTimeOffset, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
        {
            var dateTime = dateTimeOffset.GetDateTimeOffsetPart(dateTimeOffsetPart);

            return(GetPersianWeekStartAndEndDates(dateTime));
        }
コード例 #15
0
        /// <summary>
        /// تشخیص تعطیلات رسمی ایران
        /// از سال 1395 تا پایان سال 1398
        /// </summary>
        /// <param name="date">تاریخ</param>
        /// <param name="dateTimeOffsetPart"></param>
        public static bool IsHoliday(this DateTimeOffset date, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
        {
            var fromDt = date.GetDateTimeOffsetPart(dateTimeOffsetPart);

            return(IsHoliday(fromDt));
        }
コード例 #16
0
 /// <summary>
 /// تبدیل تاریخ میلادی به شمسی و دریافت اجزای سال، ماه و روز نتیجه‌ی حاصل‌
 /// </summary>
 /// <param name="gregorianDate">تاریخ و زمان</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 public static Tuple <int, int, int> ToPersianYearMonthDay(this DateTimeOffset gregorianDate, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(ToPersianYearMonthDay(gregorianDate.GetDateTimeOffsetPart(dateTimeOffsetPart)));
 }
コード例 #17
0
        /// <summary>
        /// دریافت لیست روزهای کاری ایران در یک بازه زمانی
        /// از سال 1395 تا پایان سال 1398
        /// </summary>
        /// <param name="from">از تاریخ</param>
        /// <param name="to">تا تاریخ</param>
        /// <param name="dateTimeOffsetPart"></param>
        /// <returns>روزهای کاری</returns>
        public static IEnumerable <DateTime> GetBusinessDays(this DateTimeOffset from, DateTimeOffset to, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
        {
            var fromDt = from.GetDateTimeOffsetPart(dateTimeOffsetPart);
            var toDt   = to.GetDateTimeOffsetPart(dateTimeOffsetPart);

            return(GetBusinessDays(fromDt, toDt));
        }
コード例 #18
0
 /// <summary>
 /// تبدیل تاریخ میلادی به شمسی
 /// با قالبی مانند 1395/10/21 10:20
 /// </summary>
 /// <param name="dt">تاریخ و زمان</param>
 /// <param name="dateTimeOffsetPart">کدام جزء این وهله مورد استفاده قرار گیرد؟</param>
 /// <returns>تاریخ شمسی</returns>
 public static string ToShortPersianDateTimeString(this DateTimeOffset dt, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(ToShortPersianDateTimeString(dt.GetDateTimeOffsetPart(dateTimeOffsetPart)));
 }
コード例 #19
0
 /// <summary>
 /// تبدیل تاریخ میلادی به قمری
 /// </summary>
 /// <param name="dt"></param>
 /// <param name="dateTimeOffsetPart"></param>
 /// <returns></returns>
 public static IslamicDay ToIslamicDay(this DateTimeOffset dt, DateTimeOffsetPart dateTimeOffsetPart = DateTimeOffsetPart.IranLocalDateTime)
 {
     return(ToIslamicDay(dt.GetDateTimeOffsetPart(dateTimeOffsetPart)));
 }