View Full Version : سوال: افزودن صفر به اول اعداد در سي شارپ
012132
یک شنبه 26 آذر 1391, 02:33 صبح
من تاريخ رو با استفاده از دستور trim تكه تكه مي كنم . قسمت ماه رو بر مي دارم .
مي خوام دو تا تاريخي كه كاربر به من ميده رو با هم مقايسه كنم . اما مشكل اينجاست كه وقتي split مي كنم ، ماه رو بصورت تك رقمي به من نشون ميده .
مثلاً كاربر ماه آذر رو انتخاب كرد ، فقط عدد 9 برايم به نمايش در مياد در صورتي كه من مي خوام اگر عدد تك رقمي بود (با شرط Length بررسيش مي كنم) ، اونوقت به اول عدد بدست اومده 0 اضافه كنه . يعني 09 رو نشون بده .
هر كاري كردم به قبلش هر عددي جز صفر اضافه مي كنه . در ضمن متغيرم هم از نوع int هستش .
لطفاً راهنماييم كنين چكار كنم ؟
ordebehesht
یک شنبه 26 آذر 1391, 02:38 صبح
دوست من صفر اول هر عدد مگه خونده میشه ابتدا تبدیل برشته کن بعد یک صفر بچسبون به هش
در ضمن چرا با sunbstring جدا نمیکنی ابتدا تاریخ و به صورت رشته ذخیره کن بعد به کمک Substring جدا کن
در ضمن split هم میتونه کمکت کنه
ordebehesht
یک شنبه 26 آذر 1391, 02:39 صبح
در ضمن trim فضای خالی قبل و بعد رو ازبین میبره
string strdat = txtY1.Text.Trim();
txtY1.ResetText();
txtY1.Text = strdat.Substring(0, 4);
txtm1.Text = strdat.Substring(5, 2);
txtd1.Text = strdat.Substring(8, 2);
لازم به توضیح که تاریخ به این شکله 1364/02/30
012132
یک شنبه 26 آذر 1391, 02:53 صبح
دوست عزيز اين كدي هست كه من استفاده كردم :
string[] date_splitter1 = recive_date.Value.ToString().Split('/',' ');
int year1 =Convert.ToInt32( date_splitter1[0]); // جواب 1391
int mounth1 = Convert.ToInt32(date_splitter1[1]); // جواب 9
int day1 = Convert.ToInt32(date_splitter1[2]); // جواب 26
با توجه به كدي كه نوشتم حالا چطور بايد صفر اضافه كنم به اولش . من ابتدا رشته رو گرفتم و صفر اضافه كردم اما وقتي كه تبديل به int مي كنم ، دوباره همون ميشه يعني صفر از بين ميره .
چطور بايد اين كار رو انجام بدم ؟
ordebehesht
یک شنبه 26 آذر 1391, 03:00 صبح
چرا تبدیل به int می کنی
مثل کد زیر یه 0 به اول بده
string mount="0"+date_splitter1[1];
rezaei_y
یک شنبه 26 آذر 1391, 03:24 صبح
در نهایت باید به رشته تبدیل بشه با متغیر int نمیشه صفر گذاشت اولش
012132
یک شنبه 26 آذر 1391, 03:27 صبح
راهنمايي شما كاملاً درست بود . من براي مقايسه مي خواستم به int تبديل كنم . منتها تك تك پارامتر ها را جداگانه به int تبديل مي كردم . يعني اول سال و ماه و بعد روز .
راه حل اين بود كه همه رو بصورت رشته در كنار هم بيارم و بعد فقط براي مقايسه تاريخ اول و دوم رو كه هر دو 8 رقمي مي شدن ، با هم مقايسه مي كردم .
خيلي ممنون از راهنمايي شما .
ordebehesht
یک شنبه 26 آذر 1391, 03:32 صبح
خوشحالم مشکلت حل شد
mousa1992
یک شنبه 26 آذر 1391, 09:49 صبح
سلام
اگه میخوای موقع تبدیل به رشته ی صفر قبلش بیاد نیازی نیست رشته ی صفر رو جمع کنی
int day = 2;
this.Text = day.ToString("00");
موفق باشی
ordebehesht
یک شنبه 26 آذر 1391, 14:39 عصر
آره اینم میشه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.