+2 امتیاز
سلام

دوستان چظوری میشه بین دو تاریخ که به صورت رشته استرینگ ذخیره شده جستجو انجام بدیم

تاریخ به صورت میلادی و به صورت زیر هست

2015/آگوست/07

ذخیره میشه

دوستان راهنایی کنن
سلام

منم دنبال همچین کدی هستم ولی من به صورت شمسی ذخیره میکنم

لطفا اگر مشکل حل شد به منم خبر یده باتشکر
توسط (276 امتیاز) 14 37
سلام ، نام ماه به همین صورت ذخیره شده ؟ یعنی به صورت فارسی ؟؟؟ اگر آره باید بیاین به معادل عددیش تبدیلش کنید . چون بنده متدی ندیدم که این کار رو انجام بده . بعد از اینکه به معادل عددیش تبدیلش کردی . اونوقت راحت می تونید به یک Datetime تبدیلش کنی و عمل مقایسه رو روش انجام بدی .
توسط (6,145 امتیاز) 5 11 116
برای این مدل 2015/08/28 راه حلی ندارین؟
توسط (2,130 امتیاز) 7 26 143
سلام و باتشکر

ماه رو من به صورت عددی ذخیره کردم . و نیازی به تبدیل نیست.
توسط (276 امتیاز) 14 37

1 پاسخ

+3 امتیاز

سلام به همه ...

بهترین روش (بنا به گفته خود مایکروسافت) واسه ذخیره تاریخ ، به میلادی است ! چون راحت میتونید محاسبات مث جستجو ، اختلاف تاریخ و ... رو بدست بیارید 

و سپس جهت نمایش باید تبدیل کنید به شمسی (با یه تابع یا کلاس)

این تابع تاریخ میلادی رو به شمسی بر میگردونه :

private static string GetPersianDate(DateTime date) 
        {
            PersianCalendar persianCalendar = new PersianCalendar();
            int year = persianCalendar.GetYear(date);
            int month = persianCalendar.GetMonth(date);
            int day = persianCalendar.GetDayOfMonth(date);
            return string.Format("{0:0000}/{1:00}/{2:00}", year, month, day);
        }

و برای نمایش تاریخ شمسی توی دیتاگریدویو از این cellformating تاریخ رو تبدیل میکنید :

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.ColumnIndex == 8)
            {
                object value = e.Value;
                if (value is DateTime)
                {
                    e.Value = GetPersianDate((DateTime)e.Value);
                    e.FormattingApplied = true;
                }
            }
        }

تو اینجا ستون 8 فیلد تاریخ رو نمایش میده (که به شمسی تبدیل شده)

و برای جستجو بین دو تاریخ کافی دو تا تاریخ رو وارد کنید و (بصورت پارامتر) به کوئری پاس بدین :)

یا علی !

این کامپوننت هم خیلی خوبه : DateTimeSelector.dll

دوست عزیز بهترین راهش اینه که از رشته ای استفاده بکنین
و برای سرچ هم از عبارت between استفاده کنید
توسط (141 امتیاز) 2 10
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...