PDA

View Full Version : بدست آوردن ماه با تابع split



aknj56
یک شنبه 10 اردیبهشت 1391, 10:09 صبح
با سلام خدمت دوستان برای بدست آوردن ماه از تابع split استفاده کردم حالا مشکل من اینجاست که هر تاریخی رو که توی کد می نویسم رو بدست میاره آیا یک حالت کلی نداره که من اینجا تاریخ ننویسم یعنی به جای 1433/6/8 چیزی ننویسم یا خالی بزارم
( Label4.Text = Split("1433/6/8", "/"(1
اینجا مثلا عدد 6 رو برام میاره که در این کد هست در صورتی که من میخام هر ماهی که توی تکس باکس وارد بشه رو بدست بیاره
آیا کد من اشتباه است
لطفا راهنمایی کنید

فرید نجفلو
یک شنبه 10 اردیبهشت 1391, 10:49 صبح
دوست عزیز شما از MaskEdit استفاده کنید و کاربر را وادار کنید که تاریخ رو به شکل کامل یعنی 10 کاراتر 10/02/1391 وارد کنه حالا برای بدست آوردن ماه از MID استفاده کنید

Label4.Text =Mid(MaskEdit1.Text,6,2)

البته خودتون هم می دونید که باید تاریخ رو اعتبار سنجی کنید که تاریخ به صورت صحیح وارد شده

aknj56
یک شنبه 10 اردیبهشت 1391, 11:45 صبح
با تشکر از شما دوست عزیز
maskedit چیه؟
راهنمایی کنید

ali.hojjati
یک شنبه 10 اردیبهشت 1391, 12:37 عصر
خیر کد شما درسته اینم یه روشیه برای اونایی که تاریخ رو 10 رقمی وارد نمی کنن روش خوبیه ( مثلا 1391/1/1 )
Dim Temp() as String = TheDate.Split("/")
TextBox1.Text=Temp(1)
ولی برای اون هایی که مطمئن هستید تاریخ رو 10 رقمی وارد می کنن ( مثلا 1391/01/01 )
TextBox1.Text=MID(TheDate,6,2)

ROSTAM2
یک شنبه 10 اردیبهشت 1391, 12:50 عصر
منظورتون واضح نیست :لبخند:
این یه user control برا استفاده از تاریخه به پروژه اضافه اش کن یه بار build کنی توی Toolbox ابزار استفاده اون ساخته می شه، استفاده کن اگه کامل ترش کردی بزار واسه دانلو :لبخندساده:

86458

aknj56
یک شنبه 10 اردیبهشت 1391, 12:57 عصر
سلام دوست عزیز
به این TheDate گیر میده نمی شناسه

ROSTAM2
یک شنبه 10 اردیبهشت 1391, 13:02 عصر
سلام دوست عزیز
به این TheDate گیر میده نمی شناسه

منظور ورودیه :تاریخ

Hybrid
یک شنبه 10 اردیبهشت 1391, 18:06 عصر
سلام ، اگه مشکلت همون 0 قبل از 2 هست خب با تابع Format فرمت بندیش کن یعنی به شکل زیر تاریخ شمسی رو بدست بیار :


Dim pc As New System.Globalization.PersianCalendar
Dim sb As New System.Text.StringBuilder

sb.Append(pc.GetYear(Now).ToString() & "/")
sb.Append(Format(pc.GetMonth(Now), "0#") & "/")
sb.Append(pc.GetDayOfMonth(Now).ToString())

Label1.Text = sb.ToString()

aknj56
یک شنبه 10 اردیبهشت 1391, 21:38 عصر
سلام آقا سیاوش
نه منظور من چیزی دیگه ای این کد رو ببین
( Label4.Text = Split("1433/6/8", "/"(1
من با این کد ماه رو بدست میارم که الان برج 6 هست
مشکل اینجاست که من این کد رو که نوشتم این تاریخی رو که بالا دادم رو فقط برمیگردونه همش می نویسه 6 در صورتی که من میخام هر تاریخی که توی تکس باکس ثبت میشه رو برجش برام برگردونه حالا چه چیزی باید جایگزین ("/", "1433/6/8") این باید بشود یعنی این تاریخی که اینجا گذاشتم به عنوان نمونه گذاشتم حالا چی باید بزارم که برای همه ماه ها کاربرد داشته باشد

Hybrid
یک شنبه 10 اردیبهشت 1391, 21:44 عصر
......


Label4.Text = Split(TextBox1.Text, "/")(1)

aknj56
یک شنبه 10 اردیبهشت 1391, 22:18 عصر
سلام دوست عزیز اومدم تکس باکس که تاریخ توش بود رو طبق دستور شما انجام دادم این ارور رو میده


http://img4up.com/up2/68543566755484096633.gif (http://img4up.com/)

Hybrid
یک شنبه 10 اردیبهشت 1391, 22:35 عصر
عزیز ، فکر کنم شما اومدین تاریخ ها رو با \ از هم جدا کردین درسته ؟ 5 مین خط برنامت رو ببین بعد از t.getdayofmonth

نحوه ی نمایش تاریخ رو در تکست باکس به چه صورته؟؟ اگه میشه عکس بزار

. خطاش که معلومه میگه چی .

aknj56
یک شنبه 10 اردیبهشت 1391, 22:45 عصر
سلام
درسته تاریخ این طوری4\2\91
مشکل حل شد
ممنون آقا سیاوش

Hybrid
یک شنبه 10 اردیبهشت 1391, 22:52 عصر
در قطعه کدی که واست قرار دادم / تبدیل به \ کنید درست میشه چیزی شبیه کد پایین :


Label1.Text = Split(TextBox1.Text, "\")(1)

ali.hojjati
دوشنبه 11 اردیبهشت 1391, 08:34 صبح
عزیز دل اونی که من گفتم یه متغیر رشته ای هست. یعنی که شما باید یه متغیر رشته ای تعریف کنید و از اون استفاده کنید.