پاسخ ها (9)

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

    سلام

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


    موفق باشید.


    ابوالفضل احمدی
    شنبه,30 شهریور 1398

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


    Gravatar image
    حسین حیاتی
    شنبه,30 شهریور 1398

    به عنوان نمونه یک کلاس به نام 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();

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


    ابوالفضل احمدی
    شنبه,30 شهریور 1398

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


    • Gravatar image
      شنبه,30 شهریور 1398

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


    ابوالفضل احمدی
    یکشنبه,31 شهریور 1398

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


    • Gravatar image
      یکشنبه,31 شهریور 1398

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


      • ابوالفضل احمدی
        یکشنبه,31 شهریور 1398

        داخل 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>



ارسال پاسخ


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


تو پیشگامیت، میتونی سوالات رو بپرسی و هم میتونی مطلب منتشر کنی.

پیشگام پلاس   پرسش و پاسخ کامپیوتری آنلاین