PDA

View Full Version : سوال: تارخ شمسی در masktextbox



nazanin0
پنج شنبه 06 آبان 1389, 17:46 عصر
سلام
در فرمی که طراحی کردم یه masktextbox قراردادم که تاریخ روتوش وارد میکنم تاریخ هم باید شمسی باشه البته کد تبدیل رو دارم با سرچی هم که کردم چند تا dll پیدا کردم ولی مشکل اینجاست که با کمال شرمندگی کار کردن باdll رو بلد نیستم :خجالت:(آخه تازه کارم باید پله پله شروع کنم )البته 2 تا کتاب vb.net و cd آموزشی دارم که یا توضیحی در این مورد ندادند یا به چند صفحه ای که شامل تعریف dll قناعت کردند.
از دوستان برنامه نویس خواهش میکنم که من رو راهنمای کنند:لبخندساده:
با تشکر

dataking
پنج شنبه 06 آبان 1389, 17:57 عصر
سلام
در فرمی که طراحی کردم یه masktextbox قراردادم که تاریخ روتوش وارد میکنم تاریخ هم باید شمسی باشه البته کد تبدیل رو دارم با سرچی هم که کردم چند تا dll پیدا کردم ولی مشکل اینجاست که با کمال شرمندگی کار کردن باdll رو بلد نیستم :خجالت:(آخه تازه کارم باید پله پله شروع کنم )البته 2 تا کتاب vb.net و cd آموزشی دارم که یا توضیحی در این مورد ندادند یا به چند صفحه ای که شامل تعریف dll قناعت کردند.
از دوستان برنامه نویس خواهش میکنم که من رو راهنمای کنند:لبخندساده:
با تشکر


سلام
چون سطح دانستنیهای شما را نمی دانم کامل توضیح می دهم

یه پروژه جدید درست کن و روی فرم راست کلیک کن view code را بزن و این کدها را وارد کن


Public Function ir_Date() As String
Dim irdt As Date = Date.Now
Dim Year, Month, Day As String
Dim Glob As New Globalization.PersianCalendar
Year = Glob.GetYear(irdt)
Month = Glob.GetMonth(irdt)
Day = Glob.GetDayOfMonth(irdt)
ir_Date = Year & "\" & Month & "\" & Day

End Function


خب حالا یه تکس یا لبیل یا هر چیز دیگه بزار و تو ی load فرم بنویس textx.text= ir _date

در مورد masked edit هم کافیه شما خاصیت mask را تغییر بدی یه نگاه بهش بکنب متوجه می شی امیدوارم جواب را گرفته باشی

اگه بدردت خورد این دکمه دوست داشتنی ( تشکر) را یه کلیک کنی بد نیست
جسارت شده ببخشید

nazanin0
جمعه 07 آبان 1389, 00:32 صبح
اینهم تشکروتشویق:تشویق::تشویق:

این maskedit که گفتید کجاست؟؟؟؟
مشکل من اینجانیست این کد تاریخ حال رو می نویسه ولی من می خوام هر تاریخی که می نویسه به شمسی تبدیل بشه.
از کار با dll چیزی نگفتید می شه در این زمینه هم راهنمایی کنید.

dataking
جمعه 07 آبان 1389, 09:55 صبح
اینهم تشکروتشویق:تشویق::تشویق:

این maskedit که گفتید کجاست؟؟؟؟
مشکل من اینجانیست این کد تاریخ حال رو می نویسه ولی من می خوام هر تاریخی که می نویسه به شمسی تبدیل بشه.
از کار با dll چیزی نگفتید می شه در این زمینه هم راهنمایی کنید.

سلام تو جعبه ابزار سمت چپ بگرد پیداش می کنی در مورد dll و اکتیو ایکس بحث زیاد شده مختصر بگم یه سری برنامه ( البته شاید برنامه کلمه درستی نباشه ) که بوسیله همین vb خودمون طراحی میشه خب به در چی می خوره مثلا botton های زیباتر - لیبل های جالبتر و ابزاری که به طور معمول نباشه خب وقتی که dll را پیدا کردید به راحتی می تونی توی tool box روی جنرال راست کلید کنی و تو صفحه باز شده beowse را بزنیdll را پیدا کنی ( توی هاردت ) و بعد ok کنی اگه دقت کنی تو tool box یه ابزار جدید اضافه شده می تونی ازش استفاده کنی
لطفا چون در این باره بحث شدهدیگه ادامه نده خصوصی پیام بده .

nazanin0
جمعه 07 آبان 1389, 11:22 صبح
اول اینکه من mask edit پیدانکردم.
دوم اینکه میشه آدرس جایکه درمورد این موضوع بحث شده رو بدید ؟من جستجو کردم ولی فقط فایل dll رو پیدا کردم یا مثل شما فقط توضیح مختصری دادن که dllچیه.و با عرض شرمندگی بدرد من نمیخوره من بعداز این رو نمیدونم باید چیکار کنم .
لطفاً کمککککککککککککککک کنید.

nazanin0
جمعه 07 آبان 1389, 11:31 صبح
سلام
کس دیگه ای نیست کمک کنه؟(نکنه نمی خواید کمک کنید :متفکر:)

نکته:
زکات علم درآموختن آن به دیگران است(دوستان)

dataking
جمعه 07 آبان 1389, 12:03 عصر
دقیقا یکی یکی سوال بپرس تا کمکت کنم

ali_najari
جمعه 07 آبان 1389, 13:33 عصر
نازنین خانم این هم ورژن اول Mask Shamsi Date برای کلیه دوستان
به هیچ کد نویسی هم نیاز نداره چون خودش همه چیز رو تشخیص میده و کاربر رو محدود میکنه به وارد کردن فقط عدد و خودش بصورت اتوماتیک Mask میکنه و همچنین اگر تاریخ درست نباشه خطا میده و قابلیت تشخیص سال کبیسه رو هم داره

این امکان رو هم داره که با کلید وسط موس (Wheel) میتونید تاریخ رو به عقب و جلو ببرید

و یکسری امکانات دیگه داره که در آینده یه پروژه میزارم و همه اونها رو تویش توضیح میدم

nazanin0
جمعه 07 آبان 1389, 17:39 عصر
دقیقا یکی یکی سوال بپرس تا کمکت کنم
اگه تا حالا نتونستم منظورم رو برسونم معذرت می خوام.
1.من فرمی دارم که کاربر اطلاعاتی رو در ان وارد می کنه که یکی از آنها تاریخ (که در حال حاضر میلادی ولی این تاریخ باید شمسی باشه)میخوام بدونم که باید چکار کنم که تا هر تاریخی رو که کاربر وارد میکنه به شمسی تبدیل کنه و بعد با زدن گزینه ثبت این اطلاعات در بانک ذخیره بشه؟
2.من چند تای فایل dll دارم ولی کار با اونها رو بلد نیستم (شما قبلاً تا اونجایی گفتید که dll داخل toolbox میشد از اونجا به بعد رو نگفتید که باید چیکار کنم)

تا حالا فقط تونستم از فایل آقای نجاری استفاده کنم که اونهم تاریخ حال سیستم رو می داد
(البته خیلی عالی بود :تشویق:)
اگه توضیح بیشتری لازمه بفرمایید تا گفته ام رو کامل کنم.

با تشکر

ali_najari
جمعه 07 آبان 1389, 18:04 عصر
تبدیل تاریخ میلادی به شمسی



Public Function MiladiToShamsi(ByVal MDate As Date) As String


MiladiToShamsi = “”



Dim pc As New Globalization.PersianCalendar


Dim Sal As Integer = pc.GetYear(MDate)

Dim Mah As Integer = pc.GetMonth(MDate)

Dim Roz As Integer = pc.GetDayOfMonth(MDate)


MiladiToShamsi = Format(Sal, "0000") & "/" & Format(Mah, "00") & "/" & Format(Roz, "00")


Return MiladiToShamsi


End Function


طریقه استفاده


Msgbox(MiladoToShamsi(Now()))

ali_najari
جمعه 07 آبان 1389, 18:07 عصر
دوست عزیز توی همون کامپونت وجود داره که میتونید تاریخ میلادی بدید و به شمسی اون رو دریافت کنید یا اینکه تاریخ شمسی بدید و میلادی رو بگیرید

ولی کمی باید صبر کنید تا طریقه فعال کردن و استفاده رو بهتون بگم

ali_najari
جمعه 07 آبان 1389, 18:09 عصر
این هم کد تبدیل تاریخ شمسی به میلادی



Public Function ShamsiToMiladi(ByVal SDate As String) As String

Dim pc As New Globalization.PersianCalendar
ShamsiToMiladi = ""
If SDate.Length = 10 Then

Dim Tarikh
Tarikh = Split(SDate, "/")

ShamsiToMiladi = (pc.ToDateTime(Tarikh(0), Tarikh(1), Tarikh(2), 0, 0, 0, 0))

End If

Return ShamsiToMiladi

End Function


طریقه استفاده


Msgbox(ShamsiToMiladi ("1367/02/11"))