PdfRpt.Core.Helper.PersianDate.ToPersianDateTime C# (CSharp) Méthode

ToPersianDateTime() public static méthode

Converts Gregorian date to Shamsi/Persian date
public static ToPersianDateTime ( this gregorianDate, string dateSeparator = "/", bool includeHourMinute = true, bool showLeftAlignedHourMinute = true, string timeSeparator = ":" ) : string
gregorianDate this Gregorian date
dateSeparator string Defines an optional separator between date's parts. Its default value is /
includeHourMinute bool Should converter include hour and minutes in final result. Its default value is true
showLeftAlignedHourMinute bool If includeHourMinute is true, indicates whether to show hh:mm yyyy/mm/dd or yyyy/mm/dd hh:mm
timeSeparator string Defines an optional separator between time's parts. Its default value is :
Résultat string
        public static string ToPersianDateTime(this DateTime gregorianDate, string dateSeparator = "/", bool includeHourMinute = true, bool showLeftAlignedHourMinute = true, string timeSeparator = ":")
        {
            var gregorianYear = gregorianDate.Year;
            var gregorianMonth = gregorianDate.Month;
            var gregorianDay = gregorianDate.Day;
            var persianCalendar = new PersianCalendar();
            var persianYear = persianCalendar.GetYear(new DateTime(gregorianYear, gregorianMonth, gregorianDay, new GregorianCalendar()));
            var persianMonth = persianCalendar.GetMonth(new DateTime(gregorianYear, gregorianMonth, gregorianDay, new GregorianCalendar()));
            var persianDay = persianCalendar.GetDayOfMonth(new DateTime(gregorianYear, gregorianMonth, gregorianDay, new GregorianCalendar()));
            return includeHourMinute ?
                (showLeftAlignedHourMinute ? string.Format(CultureInfo.InvariantCulture, "{0}{6}{1}  {2}{3}{4}{3}{5}", gregorianDate.Hour, gregorianDate.Minute, persianYear, dateSeparator, persianMonth.ToString("00", CultureInfo.InvariantCulture), persianDay.ToString("00", CultureInfo.InvariantCulture), timeSeparator)
                : string.Format(CultureInfo.InvariantCulture, "{2}{3}{4}{3}{5}  {0}{6}{1}", gregorianDate.Hour, gregorianDate.Minute, persianYear, dateSeparator, persianMonth.ToString("00", CultureInfo.InvariantCulture), persianDay.ToString("00", CultureInfo.InvariantCulture), timeSeparator))
                : string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{1}{3}", persianYear, dateSeparator, persianMonth.ToString("00", CultureInfo.InvariantCulture), persianDay.ToString("00", CultureInfo.InvariantCulture));
        }