پاسخ ها (9)

پاسخ ها (9)

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

    سلام

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


    موفق باشید.


    ابوالفضل احمدی

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


    حسین حیاتی

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

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


    ابوالفضل احمدی

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


    • حسین حیاتی

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


    ابوالفضل احمدی

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


    • حسین حیاتی

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


      • ابوالفضل احمدی

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



ارسال پاسخ

ارسال پاسخ


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


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

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