پاسخ ها (9)

برای ارسال پاسخ باید ثبت نام کنید یا وارد شوید
  1. تیم پیشگام آی تی
    شنبه,30 شهریور 1398-14:11

    سلام

    میبایست از کلاس یا dll های مخصوص اینکار مانند PersianToolsPack استفاده کنید. و تاریخ رو تبدیل به string کنید و نمایش بدید


    موفق باشید.


    Gravatar image
    شنبه,30 شهریور 1398-15:2

    میشه نمونه معرفی کنی


    حسین حیاتی
    شنبه,30 شهریور 1398-16:53

    به عنوان نمونه یک کلاس به نام PersianDate ایجاد کنید و محتوای زیر را در آن Paste کنید.

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    namespace Extensions

    {

    public static class PersianDate

    {

    /// <summary>

    /// یک استرینگ تاریخ شمسی را به معادل میلادی تبدیل میکند

    /// </summary>

    /// <param name="persianDate">تاریخ شمسی</param>

    /// <returns>تاریخ میلادی</returns>

    public static DateTime ToGeorgianDateTime(this string persianDate)

    {

    int year = Convert.ToInt32(persianDate.Substring(0, 4));

    int month = Convert.ToInt32(persianDate.Substring(5, 2));

    int day = Convert.ToInt32(persianDate.Substring(8, 2));

    DateTime georgianDateTime = new DateTime(year, month, day,new System.Globalization.PersianCalendar());

    return georgianDateTime;

    }

    /// <summary>

    /// یک تاریخ میلادی را به معادل فارسی آن تبدیل میکند

    /// </summary>

    /// <param name="georgianDate">تاریخ میلادی</param>

    /// <returns>تاریخ شمسی</returns>

    public static string ToPersianDateString(this DateTime georgianDate)

    {

    System.Globalization.PersianCalendar persianCalendar = new System.Globalization.PersianCalendar();

    string year = persianCalendar.GetYear(georgianDate).ToString();

    string month = persianCalendar.GetMonth(georgianDate).ToString().PadLeft(2,'0');

    string day = persianCalendar.GetDayOfMonth(georgianDate).ToString().PadLeft(2, '0');

    string persianDateString = string.Format("{0}/{1}/{2}", year, month, day);

    return persianDateString;

    }

    /// <summary>

    /// یک تعداد روز را از یک تاریخ شمسی کم میکند یا به آن آضافه میکند

    /// </summary>

    /// <param name="georgianDate">تاریخ شمسی اول</param>

    /// <param name="days">تعداد روزی که میخواهیم اضافه یا کم کنیم</param>

    /// <returns>تاریخ شمسی به اضافه تعداد روز</returns>

    public static string AddDaysToShamsiDate(this string persianDate,int days)

    {

    DateTime dt = persianDate.ToGeorgianDateTime();

    dt = dt.AddDays(days);

    return dt.ToPersianDateString();

    }

    }

    }

    نحوه استفاده نیز به صورت زیر است

    string mystring = DateTime.Now.ToPersianDateString();

    string mystring2 = DateTime.Now.AddDaysToShamsiDate();

    //و در نهایت مقدار مای استرینگ رو یه جا نشون بدید.


    Gravatar image
    شنبه,30 شهریور 1398-23:19

    کلاس AddDaysToShamsiDate() رو نمیشناسه


    • حسین حیاتی
      شنبه,30 شهریور 1398-23:35

      برای تبدیل میلادی به شمسی خط دوم را پاک کنید. خط دوم کاربرد دیگه داره که توی توضیحات کلاس نوشته


    Gravatar image
    یکشنبه,31 شهریور 1398-15:4

    ایا با این نوع نمایش در سئو تاثیر دارد یا خیر؟


    • حسین حیاتی
      یکشنبه,31 شهریور 1398-15:13

      این نوع نمایش تاریخ فقط برای نمایش به کاربر هست و برای سئو باید متاتگ مخصوص با تاریخ میلادی تعریف کنید.


      • Gravatar image
        یکشنبه,31 شهریور 1398-15:30

        داخل Repeater اومدم به صورت زیر نوشتم خطا میده

        <asp:Repeater ID="RlinkAllpost" runat="server"> <ItemTemplate> <li> <div class="title"> <a href='<%#Eval("ID_post","../../News/{0}/")+Eval("url_post")%>' title='<%# Eval("title_post") %>' style="font-size: 12px; color: <%# Eval("colorpost") %>"><%# Eval("title_post") %></a> </div> <div class="time" style="font:IranSansFaNum"><%#cmsarya.DAL.other.ConvertDateTime(Eval("title_post"))%></div> </li> </ItemTemplate> </asp:Repeater>


ارسال پاسخ


برای ارسال پاسخ باید ثبت نام کنید یا وارد شوید