PDA

View Full Version : دستور if براي تاريخ



Sama_gh_San
یک شنبه 25 بهمن 1388, 08:28 صبح
سلام دوستان

من مي خوام يک مقدار که از نوع string بين دومقدار ديگر پيدا کنم
منظورم اين که اين مقدار String من تاريخ هستش که اين مقدار را مي خوام بين دو rang تاريخ پيدا کنم دستور if آن را بايد چه جورري بررسي کنم‌؟

slashslash2009
یک شنبه 25 بهمن 1388, 08:42 صبح
اگر میخوای که در دستور select انجام بدی که باید از between استفاده کنی . ولی در if نمیدونم شاید از علامت بزرگتر > و یا کوچکتر استفاده کنی بشه احتمالا میشه بزاری درست بشه

ozzy_mra
یک شنبه 25 بهمن 1388, 09:59 صبح
برای پیدا کردن اختلاف تاریخ فکر کنم که نوع string مشکل ساز باشه باید به تاریخ تبدیلش کنی
مثلا اگه شما یه سری اعداد داشته باشی و مقایسه کنی 9 رو بزرگتر از 11 در نظر می گیره

AliRezaPro
یک شنبه 25 بهمن 1388, 10:05 صبح
منظورم این که این مقدار String من تاریخ هستش که این مقدار را می خوام بین دو rang تاریخ پیدا کنم دستور if آن را باید چه جورری بررسی کنم‌؟
آنها را به نوع داده ایی int تبدیل کنید و بعد مقایسه کنید ( در صورت وجود , اسلش ها را بردارید و برای نشان دادن به کاربر اسلش ها بزارید)
1388/10/12 را به 13881012 تبدیل و بعد مقایسه کنید که در صورت کوچکترین اختلاف در روز و ماه و سال جواب درست می دهد؛برای ذخیره کردن در دیتابیس هم همین کار کنید یعنی اسلش رو بگیرید و هنگام نشان دادن اسلش ها را بزارید

ali_autumnal
یک شنبه 25 بهمن 1388, 10:35 صبح
سلام دوستان

من می خوام یک مقدار که از نوع string بین دومقدار دیگر پیدا کنم
منظورم این که این مقدار String من تاریخ هستش که این مقدار را می خوام بین دو rang تاریخ پیدا کنم دستور if آن را باید چه جورری بررسی کنم‌؟


سوال تون واضح تر بگید.
هرچند درست متوجه نشدم اما این یه راه حله:
سه تا متغیر به نام های:
yy,mm,dd
از نوع int تعریف کنید.
بفرض که شما تاریخ رو به این صورت از کاربر گرفته باشید:
88/11/24 و در یه رشته نگه داشته اید:



string str1 = "88/11/24";
int yy = 0, mm = 0, dd = 0;
int i = 0;
yy = Convert.ToInt32(str1.Substring(0, 1)) * 10 + Convert.ToInt32(str1.Substring(1, 1));
mm = Convert.ToInt32(str1.Substring(3, 1)) * 10 + Convert.ToInt32(str1.Substring(4, 1));
dd = Convert.ToInt32(str1.Substring(6, 1)) * 10 + Convert.ToInt32(str1.Substring(7, 1));
this.Text = Convert.ToString(yy) + Convert.ToString(mm) + Convert.ToString(dd);

حالا براحتی میتونید مقادیر int رو باهم دیگه مقایسه کنید.
موفق باشید

slashslash2009
یک شنبه 25 بهمن 1388, 11:25 صبح
برای پیدا کردن اختلاف تاریخ فکر کنم که نوع string مشکل ساز باشه باید به تاریخ تبدیلش کنی
مثلا اگه شما یه سری اعداد داشته باشی و مقایسه کنی 9 رو بزرگتر از 11 در نظر می گیره
آره میشه اینکارو کرد فقط باید به تاریخ تبدیل کنی مثل این

if (DateTime.Parse(label1.Text) < DateTime.Parse(label2.Text))
MessageBox.Show("کوچکتر");
else
MessageBox.Show("بزرگتر");

AliRezaPro
یک شنبه 25 بهمن 1388, 14:59 عصر
ali_autumnal (http://barnamenevis.org/forum/member.php?u=65365) این همه cast کردن برای چی است؟ چرا در همان تاریخ که بصورت استرینگ است را در SubString بدست نمیاورید و این همه cast و ضرب میکنید؟دلیلی دارد؟

ali_autumnal
یک شنبه 25 بهمن 1388, 15:04 عصر
ali_autumnal (http://barnamenevis.org/forum/member.php?u=65365) این همه cast کردن برای چی است؟ چرا در همان تاریخ که بصورت استرینگ است را در SubString بدست نمیاورید و این همه cast و ضرب میکنید؟دلیلی دارد؟

متشکر از انتقادتون.
اما خواستم واضح تر بیان بشه.
و در حد یه مثال باشه.