0 امتیاز
با سلام

من تاریخ را با استفاده از BehComponents از کاربر دریافت می نمایم و در دیتا بیس ذخیره می کنم

حالا که اطلاعات را از دیتابیس می خونم و در گیرید ویو نمایش میدهم تاریخ به صورت میلادی به نمایش در می اید

باید چیکار کنم که وقتی تاریخ را از دیتا بیس می خونم در گیرید شمسی نشون بده

2 پاسخ

+1 امتیاز

این تابع تاریخ میلادی را دریافت کرده و تاریخ شمسی آن را برمی گرداند. این تابع عدد ماه و روز را بصورت ۲ رقمی برگشت می دهد. به عنوان مثال اگر تاریخ ۲/۸/۹۰ باشد آن را بصورت ۰۲/۰۸/۹۰ برمی گرداند.

Private string Shamsi_Date(DateTime md)
{
    PersianCalendar PersiaC = new PersianCalendar();
    try
    {
        string day = "", Month = "";
        day = (PersiaC.GetDayOfMonth(md) < 10) ? "0" + PersiaC.GetDayOfMonth(md).ToString() : PersiaC.GetDayOfMonth(md).ToString();
        Month = (PersiaC.GetMonth(md) < 10) ? "0" + PersiaC.GetMonth(md).ToString() : PersiaC.GetMonth(md).ToString();
        return PersiaC.GetYear(md).ToString() + "/" + Month.ToString() + "/" +
        day.ToString();
    }
    catch (Exception ex)
    {
        FMessageBox.Show(ex.Message, " ", FMessageBoxButtons.OK, FMessageBoxIcons.Error);
        return "";
    }
}

حالا از تابع بالا برای تبدیل تاریخ استفاده می کنیم.این برنامه رو در رویداد CellFormatting مربوط به دیتا گرید بصورت زیر می نویسیم. در این برنامه تابع تبدیل تاریخ در کلاس Date_ قرار دارد و نیز DateInsert و DateRecive نام 2 ستون در دیتاگرید میباشند که می خواهیم تاریخ این ستونها را بصورت شمسی نمایش دهیم.

private void Datagv1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    Date_ objDate = new Date_();
    if (e.Value != null)
    {
        if (Datagv1.Columns[e.ColumnIndex].Name == "DateInsert")
        {
            try
            {
                e.Value = objDate.Shamsi_Date(Convert.ToDateTime(DateTime.Now));
            }
            catch
            {
            }
        }
        if (Datagv1.Columns[e.ColumnIndex].Name == "DateRecive")
        {
            try
            {
                e.Value = objDate.Shamsi_Date(Convert.ToDateTime(e.Value));
            }
            catch
            {
            }
        }
    }
}

 

ببخشید این خط کد چه عملی را انجام میده 


 FMessageBox.Show(ex.Message, " ", FMessageBoxButtons.OK, FMessageBoxIcons.Error);
        return "";

و کلاس Date_ در چه نیم اسپیسی قرار داره؟

 

توسط (104 امتیاز) 1 3

در هیچ نیم اسپیسی.  

Shamsi_Date خودش یک تابع هست. 
توسط (197 امتیاز) 11
0 امتیاز
شما تاریخ رو شمسی ذخیره کردید و موقع نمایش میلادی نمایش میده!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

احتمال داره نوع ستون رو دیت تایم انتخاب کرده باشید. به صورت تکست بکنیدش تا تغییری تو اطلاعات داده نشه.
سوال جدید

2,334 سوال

2,871 پاسخ

3,725 دیدگاه

3,915 کاربر

دسته بندی ها

...