PDA

View Full Version : استفاده از تاریخ فارسی با کنترل datebox



anahita6
یک شنبه 20 اردیبهشت 1388, 00:20 صبح
سلام بچه ها یکی از دوستان یه کنترل جالب به نام dateboxنوشته بود که خیلی مفید بود توی این تاپیک:
http://barnamenevis.org/forum/showpost.php?p=390588&postcount=33
حالا من یه مشکل دارم وقتی میخوام محتویات این رو توی دیتا بیس ام ذخیره کنم اما overflow databaseمیده اون فیلدی هم که این تاریخ رو میخوام توش بریزم datetime تعریف کردم ]چی کار کنم؟
ممنون از کمکتون

newgoldenman
یک شنبه 20 اردیبهشت 1388, 00:56 صبح
سلام.
من نمیدونم كار این UC چیه. میشه یه توضیح بدین؟ شاید مشابهش رو بتونم بهتون بدم ی اینكه كمكتون كنم.

anahita6
یک شنبه 20 اردیبهشت 1388, 01:04 صبح
کنترل خیلی پیچیده ای نیست . فقط یه تکست باکس هست که تاریخ شمسی یه روز رو به صورت default داره.

newgoldenman
یک شنبه 20 اردیبهشت 1388, 01:10 صبح
من دانلود كردم، تست كردم. فكر كنم حدسم درست باشه كه مشكلتون چیه:
نوع مقدار مد نظر شما، یعنی:
TextDate
از نوع Stirng هست. شما برای ذخیره كردن اون توی DateTime باید نوعش رو به DateTime تبدیل كنید.

anahita6
یک شنبه 20 اردیبهشت 1388, 01:16 صبح
من فکر کنم مشکل از نوع فیلد توی دیتا بیس هست. اصلا نوع datetime تاریخ فارسی قبول میکنه؟

newgoldenman
یک شنبه 20 اردیبهشت 1388, 01:18 صبح
من فکر کنم مشکل از نوع فیلد توی دیتا بیس هست. اصلا نوع datetime تاریخ فارسی قبول میکنه؟


مسلماً خیر. اگر مشكل برای تبدیل و ... دارین، بگین همین الان تا آنلاینم یه كلاس توپ بهتون بدم تا باهاش همه ی كارهای تاریخ فاریتون رو انجام بدین.

anahita6
یک شنبه 20 اردیبهشت 1388, 01:22 صبح
اگه اون کلاس رو لطف کنید خیلی ممنون میشم. فقط من توی برنامه ام نیاز دارم تاریخ ها رو مقایسه کنم مثلا ببینم کسانی که از تاریخ x تا تاریخ y ثبت نام کردن چه کسانی هستن. پس فکر کنم خروجی اش نباید string باشه . از طرفی اونوقت چه جوری توی بانک ذخیره اش کنم؟
با نهایت سپاس

newgoldenman
یک شنبه 20 اردیبهشت 1388, 02:01 صبح
اینم از یك كلاس كامل و جامع برای تبدیل تاریخ فارسی. همه مدل سازنده و فرمت ورودی و خروجی و ... كه نیازمندش هستم، توی این كلاس نوشتم. از همین هم دقیقاً توی پروژه های خودم استفاده میكنم.
و اما میمونه سوال دومتون كه خیلی سده هست این هم. كافیه توی Query تون مشابه این كد عمل كنید:
SELECT firstName,LastName FROM Persons WHERE registerTime>=START_TIME AND registerTime<=END_TIME

به جای START_TIME و END_TIME هم مقادر خودتون رو قرار بدین.

موفق باشید.

anahita6
یک شنبه 20 اردیبهشت 1388, 02:12 صبح
خروجی یه اون کنترل datebox رو نمیشه کاریش کرد که توی دیتا بیس بتونیم ازش استفاده کنیم؟
چون کار باهاش خیلی راحته

newgoldenman
یک شنبه 20 اردیبهشت 1388, 02:17 صبح
با استفاده از كلاسی كه سهتون دادم، به راحتی میشه.

NewFoxStudent
یک شنبه 20 اردیبهشت 1388, 10:14 صبح
اگه خروجی اون کنترل رشته با فرمت yyy/mm/dd هستش
میتونید اون رو به راحتی به تاریخ میلادی تبدیل کنید
توی تاپیک 1001 نکته نمونه کدش وجود داره

anahita6
یک شنبه 20 اردیبهشت 1388, 10:33 صبح
اگه خروجی اون کنترل رشته با فرمت yyy/mm/dd هستش
میتونید اون رو به راحتی به تاریخ میلادی تبدیل کنید
توی تاپیک 1001 نکته نمونه کدش وجود داره

سلام
آخه میدونید sql قبول نمیکنه تاریخ من رو. بعد اگه تبدیلش کنم موقع باز یابی و گزارش گیری مشکل پیش میاد.

توی تاپیک 1001 نکته نمونه کدش وجود داره[/quote]
یعنی بین 1001 نکته دنبالش بگردم:متعجب::گیج:

NewFoxStudent
یک شنبه 20 اردیبهشت 1388, 11:06 صبح
http://barnamenevis.org/forum/showpost.php?p=469390

http://barnamenevis.org/forum/showpost.php?p=483295

http://barnamenevis.org/forum/showpost.php?p=483296

NewFoxStudent
یک شنبه 20 اردیبهشت 1388, 11:10 صبح
توی بانک به صورت میلادی ذخبره کنید و بعد از دریافت از بانک برای نمایش به شمسی تبدیل کنید
این کار باعث میشه برای انجام محاسبات بتونید از کلاسهای دات نت استفاده کنید

anahita6
یک شنبه 20 اردیبهشت 1388, 11:22 صبح
یعنی موقع استفاده دوباره شمسی اش کنم؟
حالا اگه به صورت string ذخیره کنم بعد موقع بازخوانی تبدیلش کنم به datetime چی ؟ چون اون کنترل که توی اولین پست اسمش رو گفتم مثل اینکه نوعش string هست چون textdate داره البته مطمئن نیستم اگه زحمتی نیست شما هم اون کنترل رو ببینید شاید راه حل بهتری پیدا کنیم . چون توی اکثر قسمت های برنامه ازش استفاده کردم خیلی برام مشکله کلا حذفش کنم

anahita6
یک شنبه 20 اردیبهشت 1388, 17:46 عصر
با نهایت تشکر ازکمک های دوستان اگه زحمتی نیست یه کم در مورد کد اخیر و تلفیقش با اون کامپوننت ای که دوستمون واسه تاریخ شمسی نوشته و اول تاپیک گذاشتم و نحوه استفاده از اون یه مختصری توضیح بدید


public DateTime Shamsi2Miladi(string _date)
{
int year = int.Parse(_date.Substring(0, 4));
int month = int.Parse(_date.Substring(5, 2));
int day = int.Parse(_date.Substring(8, 2));
PersianCalendar p = new PersianCalendar();
DateTime date = p.ToDateTime(year, month, day, 0, 0, 0, 0);
return date;
}