PDA

View Full Version : سوال: افزودن صفر به اول اعداد در سي شارپ



012132
یک شنبه 26 آذر 1391, 01:33 صبح
من تاريخ رو با استفاده از دستور trim تكه تكه مي كنم . قسمت ماه رو بر مي دارم .

مي خوام دو تا تاريخي كه كاربر به من ميده رو با هم مقايسه كنم . اما مشكل اينجاست كه وقتي split مي كنم ، ماه رو بصورت تك رقمي به من نشون ميده .

مثلاً كاربر ماه آذر رو انتخاب كرد ، فقط عدد 9 برايم به نمايش در مياد در صورتي كه من مي خوام اگر عدد تك رقمي بود (با شرط Length بررسيش مي كنم) ، اونوقت به اول عدد بدست اومده 0 اضافه كنه . يعني 09 رو نشون بده .

هر كاري كردم به قبلش هر عددي جز صفر اضافه مي كنه . در ضمن متغيرم هم از نوع int هستش .

لطفاً راهنماييم كنين چكار كنم ؟

ordebehesht
یک شنبه 26 آذر 1391, 01:38 صبح
دوست من صفر اول هر عدد مگه خونده میشه ابتدا تبدیل برشته کن بعد یک صفر بچسبون به هش
در ضمن چرا با sunbstring جدا نمیکنی ابتدا تاریخ و به صورت رشته ذخیره کن بعد به کمک Substring جدا کن
در ضمن split هم میتونه کمکت کنه

ordebehesht
یک شنبه 26 آذر 1391, 01: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, 01: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, 02:00 صبح
چرا تبدیل به int می کنی
مثل کد زیر یه 0 به اول بده

string mount="0"+date_splitter1[1];

rezaei_y
یک شنبه 26 آذر 1391, 02:24 صبح
در نهایت باید به رشته تبدیل بشه با متغیر int نمیشه صفر گذاشت اولش

012132
یک شنبه 26 آذر 1391, 02:27 صبح
راهنمايي شما كاملاً درست بود . من براي مقايسه مي خواستم به int تبديل كنم . منتها تك تك پارامتر ها را جداگانه به int تبديل مي كردم . يعني اول سال و ماه و بعد روز .

راه حل اين بود كه همه رو بصورت رشته در كنار هم بيارم و بعد فقط براي مقايسه تاريخ اول و دوم رو كه هر دو 8 رقمي مي شدن ، با هم مقايسه مي كردم .

خيلي ممنون از راهنمايي شما .

ordebehesht
یک شنبه 26 آذر 1391, 02:32 صبح
خوشحالم مشکلت حل شد

mousa1992
یک شنبه 26 آذر 1391, 08:49 صبح
سلام
اگه میخوای موقع تبدیل به رشته ی صفر قبلش بیاد نیازی نیست رشته ی صفر رو جمع کنی


int day = 2;
this.Text = day.ToString("00");


موفق باشی

ordebehesht
یک شنبه 26 آذر 1391, 13:39 عصر
آره اینم میشه